C#中的SQL查询,无效的对象名称'userInfo'

时间:2013-04-09 20:07:30

标签: c# sql sql-server

SqlConnection scon = new SqlConnection(arthurDBConnectionString);
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand("INSERT INTO userInfo VALUES(@firstname, @lastname)", scon);
da.InsertCommand.Parameters.Add("@firstname", SqlDbType.VarChar).Value = firstname;
da.InsertCommand.Parameters.Add("@lastname", SqlDbType.VarChar).Value = lastname;

scon.Open();
da.InsertCommand.ExecuteNonQuery(); <--Exception(Invalid object name)
scon.Close();

首先,我想说我是SQL新手。我正在使用C#中的应用程序来处理SQL Server上的数据。上面是我将数据添加到表的两列的代码,但是我得到'userInfo'(表)是无效对象名称的错误。我确保该表存在于数据库中,并且连接是Open。我也尝试过将表格称为 DATABASENAME.SCHEMA.userInfoSCHEMA.userInfo具有相同的结果。提前感谢您的任何帮助或意见。

3 个答案:

答案 0 :(得分:3)

如果您收到该错误,则示波器中没有“userInfo”表。尝试使用management studio登录并使用查询分析器运行相同的命令。确保在arthurDBConnectionString中使用相同的登录信息,调试方法并将鼠标悬停在其上以确保使用导致错误的相同信息。

1)如果您的排序规则区分大小写(使用SELECT SERVERPROPERTY('COLLATION')检查),则'userInfo'的大小写必须相同。

2)您是否在正确的数据库中?也许你的连接字符串错误拼写了属性(即INITIL CATALOG=dbname,请在代码SELECT db_name()中尝试另一个命令以确保。

3)架构是否相同?

4)您是否有权从表格中进行选择?

答案 1 :(得分:1)

检查, 1)检查您创建的表是否存在于您在连接字符串中提供的相同数据库中。 2)交叉检查表名称

答案 2 :(得分:0)

而不是这个

da.InsertCommand.Parameters.Add("@firstname", SqlDbType.VarChar).Value = firstname;
da.InsertCommand.Parameters.Add("@lastname", SqlDbType.VarChar).Value = lastname;

使用此

da.InsertCommand.Parameters.Add("@firstname", SqlDbType.VarChar).Value = textBox1.Text;
da.InsertCommand.Parameters.Add("@lastname", SqlDbType.VarChar).Value = textBox2.Text