ExecuteNonQuery中的无效对象名称

时间:2014-03-10 00:09:21

标签: c# sqlconnection

我目前正在尝试开发一个应用程序,让您可以跟踪您的课程支出。但是我遇到了错误“无效的对象名称'dbo.AccTransactions”

我的Windows窗体代码:

    string command = "Insert INTO dbo.AccTransactions (id, transact_id, payee, dateof, amount, category)"
                            + "Values (@id, @transact_id, @payee, @dateof, @amount, @category)";
        SqlCommand cmd = new SqlCommand(command, con);
        cmd.Parameters.AddWithValue("@id", 1);
        cmd.Parameters.AddWithValue("@transact_id", 2);
        cmd.Parameters.AddWithValue("@payee", payeeTextBox.Text);
        cmd.Parameters.AddWithValue("@dateof", DateTime.Today);
        cmd.Parameters.AddWithValue("@amount", Convert.ToDecimal(amountTextBox.Text));
        cmd.Parameters.AddWithValue("@category", categoryTextBox.Text);

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

我的连接字符串:

     SqlConnection con = new SqlConnection(@"Data Source=IVY\SQLEXPRESS;Initial Catalog=BudgetTracker;Integrated Security=SSPI;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");

我的数据库有“dbo.AccTransactions”表,它在SSMS中表现完美。

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

我猜你在连接字符串中缺少数据库名称。

SqlConnection con = new SqlConnection(@"Data Source=IVY\SQLEXPRESS;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");

通过将数据库的名称放在以下字符串中来尝试。

 SqlConnection con = new SqlConnection(@"Data Source=IVY\SQLEXPRESS; Initial Catalog=YOUR_DATABASE_NAME;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");

答案 1 :(得分:0)

请检查运行程序的用户是否可以访问该表。最有可能的是,您需要将用户设置为dbo,因为您以dbo.AccTransactions的形式访问该表。

相关问题