例如下面代码:
SqlConnection Conn=new SqlConnection(StrDbconn);
SqlDataAdapter Comm=new SqlDataAdapter(StrSql,Conn);
SqlCommandBuilder Cb=new SqlCommandBuilder(Comm);
DataSet ds=new DataSet();
Comm.Fill(ds);
ds.Tables[0].PrimaryKey=new DataColumn[]{ds.Tables[0].Columns["userid"]};
ds.Tables[0].Rows[1][1]="aaaaaa";
ds.Tables[0].Rows[1][2]="bbbbbb";
Comm.Update(ds.Tables[0]);提示:对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成请大家指出错误,是否还有其他的方面,谢谢

解决方案 »

  1.   

    1. 没有acceptchange
    2. 数据库中表没有设置主键
      

  2.   

    手工在表结构里面指定主键(userid),是可以提交成功的,但是,如果表结构里面没有设定主键,用
    ds.Tables[0].PrimaryKey=new DataColumn[]{ds.Tables[0].Columns["userid"]};
    为什么提交报错.
      

  3.   

    你这样必须先用一个Select语句,初始化一下Adapter, 用Fill方法获得数据库表的Schema再用CommandBuilder获得InsertCommand
      

  4.   

    初始化Adapter我写了,用CommandBuilder获得InsertCommand 能具体些吗