写插入数据的命令,表中的字段很多的话,要写那么多的参数.add!有什么办法没有? myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11)).Value=au_id.Value 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SqlCommandBuilder对象能自动生成许多更新的语句 SqlCommandBuilder对象能自动生成许多更新的语句 为什么不写SQL中的INSERT语句呢,那样所有的字段写一行就可以搞定了! 你可以不用参数,如下的sql语句 sqlstr="update 业主写字间资料 set "; //sqlstr=sqlstr+" 业主编号='"+((TextBox)e.Item.FindControl("TextBoxNo")).Text.Replace("'","''")+"',"; sqlstr=sqlstr+" 写字间编号='"+((TextBox)e.Item.FindControl("TextBoxHouseNo")).Text.Replace(",","''")+"',"; sqlstr=sqlstr+" 使用类别='"+((TextBox)e.Item.FindControl("TextBoxUseType")).Text.Replace("'","''")+"',"; sqlstr=sqlstr+" 所在楼层='"+((TextBox)e.Item.FindControl("TextBoxFloorNo")).Text.Replace("'","''")+"',"; sqlstr=sqlstr+" 入住日期='"+Convert.ToDateTime(((TextBox)e.Item.FindControl("TextBoxLiveinDate")).Text).Date+"',"; sqlstr=sqlstr+" 离开日期='"+((TextBox)e.Item.FindControl("TextBoxLeaveDate")).Text+"',"; sqlstr=sqlstr+" 房间类型='"+((TextBox)e.Item.FindControl("TextBoxHouseType")).Text+"',"; sqlstr=sqlstr+" 建筑面积="+Convert.ToDecimal(((TextBox)e.Item.FindControl("TextBoxHouseArea")).Text)+","; sqlstr=sqlstr+" 使用面积="+Convert.ToDecimal(((TextBox)e.Item.FindControl("TextBoxUseArea")).Text)+","; sqlstr=sqlstr+" 价格="+Convert.ToDecimal(((TextBox)e.Item.FindControl("TextBoxPrice")).Text)+","; sqlstr=sqlstr+" 备注='"+((TextBox)e.Item.FindControl("TextBoxMemo")).Text.Replace("'","''")+"'"; sqlstr=sqlstr+" where id="+this.DataGridBuyHouse.DataKeys[e.Item.ItemIndex].ToString(); //this.LabelMessage.Text=sqlstr; comm.CommandText =sqlstr; comm.ExecuteNonQuery();这种方式可以更简单更灵活的生成sql语句 ,但有的错误很隐蔽,写的时候一定要小心,特别是对字符窜的处理(我为什么要用Replace函数,你应该明白吧?)通常情况还使用代参数的sql比较好,这样的代码更易读,易调试,易维护,并且可写出模块化更高的程序来,何乐而不为呢?为什么还怕麻烦呢? string insertCmd="insert into table (id,lname) values ('"+au_id.Value+"','"+au_lname.Value+"')";myCmd.ExecuteNonQuery();(记不请了,差不多就是这样) 如果comandtype是存储过程,不加参数怎么行??? 字符串处理sql是有问题的!当用户输入了一个带单引号的数据就会出错!大型系统最好用参数,并使用存储过程! 没有简单的办法,我是这么处理的:InsertManager.AddArgument("id",1);InsertManager.AddArgument("name","test");InsertManager.AddArgument("desc","haha");InsertManager.Insert();InsertManager是我自己定义的一个类。 服务器警告:3005错误 调用支付宝接口如何在弹出的新页面中打开充值页面 谁能提供js+div的一些效果? 求助:文件上传 请问这样的静态页面是如何写的? ====如何取得文件的扩展名 .NET怎么实现在设定的时间点完成点击事件? asp.net保存问题探讨 慕白、孟子等高手来看看(数据导入excel问题)…… vs运行问题 如何提取系统时间? Win2000配置了服务器后Aspx虚拟目录就不能运行了,为什么?
sqlstr="update 业主写字间资料 set ";
//sqlstr=sqlstr+" 业主编号='"+((TextBox)e.Item.FindControl("TextBoxNo")).Text.Replace("'","''")+"',";
sqlstr=sqlstr+" 写字间编号='"+((TextBox)e.Item.FindControl("TextBoxHouseNo")).Text.Replace(",","''")+"',";
sqlstr=sqlstr+" 使用类别='"+((TextBox)e.Item.FindControl("TextBoxUseType")).Text.Replace("'","''")+"',";
sqlstr=sqlstr+" 所在楼层='"+((TextBox)e.Item.FindControl("TextBoxFloorNo")).Text.Replace("'","''")+"',";
sqlstr=sqlstr+" 入住日期='"+Convert.ToDateTime(((TextBox)e.Item.FindControl("TextBoxLiveinDate")).Text).Date+"',";
sqlstr=sqlstr+" 离开日期='"+((TextBox)e.Item.FindControl("TextBoxLeaveDate")).Text+"',";
sqlstr=sqlstr+" 房间类型='"+((TextBox)e.Item.FindControl("TextBoxHouseType")).Text+"',";
sqlstr=sqlstr+" 建筑面积="+Convert.ToDecimal(((TextBox)e.Item.FindControl("TextBoxHouseArea")).Text)+",";
sqlstr=sqlstr+" 使用面积="+Convert.ToDecimal(((TextBox)e.Item.FindControl("TextBoxUseArea")).Text)+",";
sqlstr=sqlstr+" 价格="+Convert.ToDecimal(((TextBox)e.Item.FindControl("TextBoxPrice")).Text)+",";
sqlstr=sqlstr+" 备注='"+((TextBox)e.Item.FindControl("TextBoxMemo")).Text.Replace("'","''")+"'";
sqlstr=sqlstr+" where id="+this.DataGridBuyHouse.DataKeys[e.Item.ItemIndex].ToString();
//this.LabelMessage.Text=sqlstr;
comm.CommandText =sqlstr;
comm.ExecuteNonQuery();这种方式可以更简单更灵活的生成sql语句 ,但有的错误很隐蔽,写的时候一定要小心,特别是对字符窜的处理(我为什么要用Replace函数,你应该明白吧?)通常情况还使用代参数的sql比较好,这样的代码更易读,易调试,易维护,并且可写出模块化更高的程序来,何乐而不为呢?为什么还怕麻烦呢?
当用户输入了一个带单引号的数据就会出错!
大型系统最好用参数,并使用存储过程!
InsertManager.AddArgument("name","test");
InsertManager.AddArgument("desc","haha");
InsertManager.Insert();InsertManager是我自己定义的一个类。