C# 使用数据集更新数据库时出错
运行下面的代码时出现此错误 不支持针对UpdateCommand的动态SQL生成 不返回任何键列信息的SelectCommand 试过做很多事情,但都不管用。下面是代码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:
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。是否还需要选择主键?是,我的表有主键