大量控件提交表单问题
各位老大:
小弟最近要做一个在线调查,调查表有30-40项,其中有checkbox和dropdownlist
其中有单选也有多选,不知怎么才能很方便的录入到数据库中呢?以前都是变量比较少,一条语句就可以了,现在这么多控件变量怎么办啊?
还有一个小问题,多选怎么录入呢?
谢谢谢谢
问题点数:30、回复次数:6Top
1 楼aspdotnet2005(天中之子、为中原喝采![我想找兼职MSN:Red-Maple@hotmail.com])回复于 2006-03-10 21:07:19 得分 5
数据库设计要考虑全面些!并不是这些控件的问题
或者把多选项的健值都存入数据库,但这样做有点不科学。
如果多选不规则的话设计两个表可能会解决你产问题Top
2 楼zhenkai(风中客)回复于 2006-03-10 21:10:32 得分 0
多选还是小问题,可以用“,”“."什么符号分开录入就行了,我至少这么认为
但关键的问题还是怎么把这么多数据录入到库中
是不是有什么遍历所有控件然后录入?
我没这么写过,请指教
谢谢
Top
3 楼jianyi0115(随意)回复于 2006-03-10 21:16:58 得分 25
简单方法:
(前提:你的页面对应一个表)
将页面控件的ID于数据库相应字段值对应,然后录入时
循环Request.Form 生成sql语句,
string sql = "insert into table1 (";
string fields= "";
string values = "";
foreach( string field in Request.Form.Keys )
{
fields += field + "," ;
values += "'" + Request.Form[field] + "'," ;
}
fields.StrmEnd( ';' );
values .StrmEnd( ';' );
sql = sql + fields + ")values(" + values + ")";
//自己调整一下Top
4 楼zhenkai(风中客)回复于 2006-03-10 21:25:19 得分 0
感谢jianyi0115(随意)
对我很有启发
有以下不明之处望答复
1。原来我插入数据时,都是控件ID.values,为什么您要Request.Form[field]?
2。数据库字段名和表单上的控件名在对应的情况下,是随便起吗?还是要有一定的规律?
3。这两句fields.StrmEnd( ';' );
values .StrmEnd( ';' );什么意思?
谢谢Top
5 楼jianyi0115(随意)回复于 2006-03-10 21:37:04 得分 0
1.用 ID.values 也可以,,但需要循环页面控件了, Request.Form是一个名值对的集合,
放置了客户端Post的数据,控件的Value或Text属性其实也是从这个集合中自动获取的.
2.数据库字段名和表单上的控件名要对应, 这是因为客户端生成的html元素的name属性一般与服务器端的ID属性一样, 这样才可以直接循环 Request.Form
3. 这是为了拼出正确的insert语句 :
insert into table9(f1,f2,)values('','',) //this is err
insert into table9(f1,f2)values('','') //this is ok
Top
6 楼zhenkai(风中客)回复于 2006-03-10 21:42:48 得分 0
再次感谢!
谢谢结题给分Top




