C# Can';使用数据库时无法理解错误消息
我可以从数据库中的行和列中读取数据,但当我想在同一个位置写入数据时,我会收到一条错误消息,我不知道会发生什么错误 我得到这个错误消息: 不支持针对UpdateCommand的动态sql生成 不返回任何键列信息的SelectCommand 我的代码:C# Can';使用数据库时无法理解错误消息,c#,sql-server-2008,C#,Sql Server 2008,我可以从数据库中的行和列中读取数据,但当我想在同一个位置写入数据时,我会收到一条错误消息,我不知道会发生什么错误 我得到这个错误消息: 不支持针对UpdateCommand的动态sql生成 不返回任何键列信息的SelectCommand 我的代码: public void LoadData() { connection = new SqlConnection(connectionString); dataset = new DataSet();
public void LoadData()
{
connection = new SqlConnection(connectionString);
dataset = new DataSet();
sql = "SELECT * From Guests";
try
{
connection.Open();
adapter = new SqlDataAdapter(sql, connection);
adapter.Fill(dataset, "Guests");
connection.Close();
string test = Convert.ToString(dataset.Tables["Guests"].Rows[0][1]);
MessageBox.Show(test, "This is only a test!",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
dataset.Tables["Guests"].Rows[0][1] = "Hello";
connection.Open();
new SqlCommandBuilder(adapter);
adapter.Update(dataset.Tables["Guests"]);
connection.Close();
}
catch
{
throw;
}
}
在SelectCommand中,必须返回主键,因为SqlCommandBuilder需要生成更新,并且必须在表上设置主键
“SelectCommand还必须返回至少一个主键或唯一列。如果不存在主键或唯一列,则会生成InvalidOperation异常,并且不会生成命令。”您的select查询需要返回表的主键。如果表没有主键,则需要设置主键。请确保您的表包含主键….检查您的表是否指定了主键。嗯,我如何查看我的数据库中是否有主键,如果没有主键,我可以将其添加到现有的DB Visual Studio中?我阅读了链接中的一些文本,也可以使用唯一的列,但如果我只添加一列,我会得到它,我正在用新值更新的列或所有列?打开表,验证表上是否有主键您可以在第一次添加所有列,我想您有主键是的,我想是的!我已经有一段时间没有使用数据库了,我正在努力记住我的老知识。我有一个ID列,它必须是主键。但我不知道该怎么还这个。我在微软网站的代码中没有看到这样的东西。你能告诉我应该在哪里以及怎样做吗?