对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成你的select 没有选择有主键的列,或者你的表中没有主键

解决方案 »

  1.   

    可能原因1:表没有主键。SqlCommandBuider在生成updateCommand 或相关的command时会调用selectCommand.
    可能原因2 :表中的字段有sqlCommandBuilder不支持的字符比如下划线。
      

  2.   

    缺一句:SqlCommandBuilder cb = new SqlCommandBuilder(Adap);
      

  3.   

    具体代码如下:
    SqlConnection MyConn = new SqlConnection(MyConnString);
    SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
    SqlCommandBuilder custCB = new SqlCommandBuilder(MyAdapter);

    MyAdapter.Fill(ds,"Score"); //插入新的一行
    DataRow dr = ds.Tables["Score"].NewRow();
    dr["Name"] = "比尔";
    dr["Id"] = "201";
    dr["Chinese"] = 0;
    dr["Math"] = 100;
    dr["English"] = 90;
    dr["Physics"] = 90;
    dr["History"] = 60;
    ds.Tables["Score"].Rows.Add(dr); //更新第二行
    dr = ds.Tables["Score"].Rows[1];
    dr["Chinese"] = 100;
    dr["Math"] = 100;
    dr["English"] = 90;
    dr["Physics"] = 90;
    dr["History"] = 100; MyAdapter.Update(ds,"Score"); New.DataSource = ds;
    New.DataMember = "Score";
    New.DataBind();我已经使用SqlCommandBuider 了,可是仍然提示:“对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”请教这是怎么回事???
      

  4.   

    strSel是什么??
    试试把strSel参数去掉。