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

本文关键字:userInfo 对象 SQL 中的 查询 无效 | 更新日期: 2023-09-27 18:08:32

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'(表)是一个无效的对象名称。我已经确保这个表存在于数据库中,并且连接是打开的。我也试过把这个表称为DATABASENAME.SCHEMA.userInfoSCHEMA.userInfo得到相同的结果。

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

如果你得到这个错误,那么在你的范围内没有'userInfo'表。尝试使用管理工作室登录并使用查询分析器运行相同的命令。请确保在arthurDBConnectionString中使用相同的登录信息,调试您的方法并将鼠标悬停在它上面以确保您使用的是导致错误的相同信息。

1)如果你的排序是大小写敏感的(检查SELECT SERVERPROPERTY('COLLATION')), 'userInfo'的大写必须相同。

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

3)模式是否相同?

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

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

代替

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