C# 使用数据集更新数据库时出错

C# 使用数据集更新数据库时出错,c#,ado.net,C#,Ado.net,运行下面的代码时出现此错误 不支持针对UpdateCommand的动态SQL生成 不返回任何键列信息的SelectCommand 试过做很多事情,但都不管用。下面是代码 string queryUp = "SELECT Node_A_ObjectID,Node_Z_ObjectID FROM NDDILinks"; string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data source=D:

运行下面的代码时出现此错误

不支持针对UpdateCommand的动态SQL生成 不返回任何键列信息的SelectCommand

试过做很多事情,但都不管用。下面是代码

 string queryUp = "SELECT Node_A_ObjectID,Node_Z_ObjectID FROM NDDILinks";
            string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data source=D:\TiptonDB.mdb";
            DataSet dtup = new DataSet();
            using (OleDbConnection myConnection = new OleDbConnection())
            {
                myConnection.ConnectionString = myConnectionString;
                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = myConnection;
                myConnection.Open();
                OleDbDataAdapter adp = new OleDbDataAdapter(queryUp, myConnection);
                adp.FillSchema(dtup, SchemaType.Source, "NDDILinks");
                adp.Fill(dtup, "NDDILinks");

                dtup.Tables[0].Rows[1][0] = 2350;
                adp.AcceptChangesDuringUpdate = true;

                OleDbCommandBuilder objCommandBuilder = new OleDbCommandBuilder(adp);
                cmd.Parameters.Add("@Node_A_ObjectID", OleDbType.Integer, sizeof(int), "Node_A_ObjectID");
                int a1 = adp.Update(dtup, "NDDILinks");
                dtup.AcceptChanges();

我没有选择主键,只有2个值 Node_A_ObjectID,Node_Z_ObjectID。是否还需要选择主键


根据你在帖子上的评论。您必须选择主键,更新才能使用数据集,或者您可以指定自己的更新或插入查询。您还可以在MSDN上看到

您确定要从表中选择主键吗
NDDILinks
?还要确保您已在表中定义了键。我没有选择主键,只选择了两个值Node_A_ObjectID,Node_Z_ObjectID。是否还需要选择主键?是,我的表有主键