1. 加try,catch
2. 在insert,update中必须要表的主键
3.
string str=("insert into xxx values("+xxx+")";
//string str=("update xxx set xxx= ...."+")";
//string str=("delete xxx from xxx=...."+")";SqlCommand cmd = new SqlCommand(str,conn);
try {
conn.Open();
cmd.ExecuteNoQuery;
conn.Close()
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}

解决方案 »

  1.   

    sqlDataAdapter sda = new ...
    sda.InsertCommand = new sqlCommand("Insert ...",scon);
    sda.UpdateCommand = new ...
    ...
      

  2.   

    是不是要在更改后的DataGrid里做一个遍历,然后逐行更新呢,如果是新增的行如何处理呢,是否还要判断是不是此行原来在DATASET中存在呢,如果中间删除了某一行呢。
    是这样的,我是取了一个数据集然后用DataGrid显示出来,进行编辑,然后用自动更新到数据库里,但有时报错。如果是一条记录我觉得用上面二位介绍的方法很好,如果这个DataGrid中有一千行数据,进行了不同的编辑,比如修改,删除,是不是仍旧能像上面那样做呢?
      

  3.   

    我建议你以Insert Update Delete建三个存储过程,sqlDataAdapter 的三个command每个对应执行一个,其实也很简单,只要设置好参数,到时你就调用sqlDataAdapter的Update就行了。
      

  4.   

    语法问题string str="insert into xxx values(字段1,字段2,字段3...) values("+xxx+","+xxx+")";
      

  5.   

    string str="insert into xxx values(字段1,字段2,字段3...) "+" values("+xxx+","+xxx+")";
      

  6.   

    http://blog.csdn.net/langmafeng/archive/2004/07/02/32287.aspx