我目前正在尝试开发一个应用程序,让您可以跟踪您的课程支出。但是我遇到了错误“无效的对象名称'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中表现完美。
任何帮助都会很棒!
答案 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的形式访问该表。