System.Data.SqlClient.SqlException:'尝试在数据库中插入数据时无效的对象名称(C#,Visual Studio)

时间:2019-03-01 16:09:25

标签: c# sql database

首先,我想说的是,我认为我的问题很容易解决,但是经过大量的尝试和搜索,我没有取得任何进展(在数据库方面,我也是一个完整的初学者)。

我使用Microsoft SQL Server创建了一个数据库,并将其命名为UltimatePokerDB。 我添加了一个表MyTable 我添加了两列sevenKeys和sevenValues

这在Visual Studio中可见 Image of my Server Explorer in visual studio

并生成此SQL代码

CREATE TABLE MyTable
(
    [sevenKeys] BINARY(56) NOT NULL PRIMARY KEY, 
    [SevenValues] BINARY(48) NOT NULL
)

我的Main方法中编写了以下代码

            string provider = "System.Data.SqlClient";
            string connectionstring = "Server=localhost;Database=master;Trusted_Connection=True;";
            byte[] one = new byte[7];
            byte[] two = new byte[6];

            DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
            using (SqlConnection cnn = new SqlConnection(connectionstring))
            {
                string sql = "insert into MyTable (sevenKeys, sevenValues) values(@first,@last)";
                cnn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, cnn))
                {
                    cmd.Parameters.AddWithValue("@first", one);
                    cmd.Parameters.AddWithValue("@last", two);
                    cmd.ExecuteNonQuery();
                    Console.WriteLine("row inserted");
                }
            }

我在cmd.ExecuteNonQuery()处收到错误,它说:System.Data.SqlClient.SqlException:'无效的对象名'MyTable'。'

基本上我给它起了错误的名字,但我不知道它要我做什么...

1 个答案:

答案 0 :(得分:4)

您已在连接字符串中指定使用数据库master。您可能应该使用表所在的数据库,该数据库可能不是master。实际上,您的屏幕截图中似乎应该是UltimatePokerDB