Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';使用数据库时无法理解错误消息_C#_Sql Server 2008 - Fatal编程技术网

C# Can';使用数据库时无法理解错误消息

C# Can';使用数据库时无法理解错误消息,c#,sql-server-2008,C#,Sql Server 2008,我可以从数据库中的行和列中读取数据,但当我想在同一个位置写入数据时,我会收到一条错误消息,我不知道会发生什么错误 我得到这个错误消息: 不支持针对UpdateCommand的动态sql生成 不返回任何键列信息的SelectCommand 我的代码: public void LoadData() { connection = new SqlConnection(connectionString); dataset = new DataSet();

我可以从数据库中的行和列中读取数据,但当我想在同一个位置写入数据时,我会收到一条错误消息,我不知道会发生什么错误

我得到这个错误消息:

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

我的代码:

    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列,它必须是主键。但我不知道该怎么还这个。我在微软网站的代码中没有看到这样的东西。你能告诉我应该在哪里以及怎样做吗?