myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11)).Value=au_id.Value

解决方案 »

  1.   

    SqlCommandBuilder对象能自动生成许多更新的语句
      

  2.   

    SqlCommandBuilder对象能自动生成许多更新的语句
      

  3.   

    为什么不写SQL中的INSERT语句呢,那样所有的字段写一行就可以搞定了!
      

  4.   

    你可以不用参数,如下的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比较好,这样的代码更易读,易调试,易维护,并且可写出模块化更高的程序来,何乐而不为呢?为什么还怕麻烦呢?
      

  5.   

    string insertCmd="insert into table (id,lname) values ('"+au_id.Value+"','"+au_lname.Value+"')";myCmd.ExecuteNonQuery();(记不请了,差不多就是这样)
      

  6.   

    如果comandtype是存储过程,不加参数怎么行???
      

  7.   

    字符串处理sql是有问题的!
    当用户输入了一个带单引号的数据就会出错!
    大型系统最好用参数,并使用存储过程!
      

  8.   

    没有简单的办法,我是这么处理的:InsertManager.AddArgument("id",1);
    InsertManager.AddArgument("name","test");
    InsertManager.AddArgument("desc","haha");
    InsertManager.Insert();InsertManager是我自己定义的一个类。