我正在尝试执行Insert语句,但不断收到Invalid object name
错误。
这是我的代码:
public string addNewComment(int userID, int pageID, string title, string comment)
{
string query = "INSERT INTO dbo.nokernok_kommentarer (userID, pageID, commentTitle, comment) " +
"VALUES ("+ userID +", "+ pageID +", '"+ title +"', '"+ comment +"')";
adapter.InsertCommand = new SqlCommand(query, connection);
//ExecuteNonQuery retuens number of rows affected
int numRows = adapter.InsertCommand.ExecuteNonQuery();
return numRows.ToString();
}
这是我的错误消息:
System.Data.SqlClient.SqlException: 无效的对象名称 'dbo.nokernok_kommentarer'。在 System.Data.SqlClient.SqlConnection.OnError(SQLEXCEPTION exception,Boolean breakConnection)at System.Data.SqlClient.SqlInternalConnection.OnError(SQLEXCEPTION exception,Boolean breakConnection)at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(字符串 methodName,Boolean async)at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result,String methodName,Boolean sendToPipe)at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 在 development.DAL.nokernokDAL.addNewComment(的Int32 userID,Int32 pageID,String title, 字符串注释) C:\的Inetpub \ wwwroot的\ NAAF \ DAL \ nokernok.cs:行 49
任何人都可以帮我弄清楚为什么会出现这个错误吗?
更新
我应该使用正确的数据库,因为以下查询有效:
public DataSet getSchools(string countyCode)
{
DataSet ds = new DataSet();
string query = "SELECT * FROM nokernok_skoler WHERE kommunekode LIKE '" + countyCode.Substring(0, 2) + "%' ORDER BY enhetsnavn";
adapter.SelectCommand = new SqlCommand(query, connection);
adapter.Fill(ds);
return ds;
}
我的连接字符串如下所示:
SqlConnection connection = new SqlConnection();
SqlDataAdapter adapter = new SqlDataAdapter();
// class constructor
public nokernokDAL()
{
connection.ConnectionString = EPiServer.Global.EPConfig["EPsConnection"].ToString();
connection.Open();
}
答案 0 :(得分:21)
你可能在错误的数据库中。在连接字符串中包含初始目录:
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername; ...
^^^^^^^^^^^^^^^^^^^^^^^^^^
或指定三部分名称:
INSERT INTO myDataBase.dbo.nokernok_kommentarer
^^^^^^^^^^
答案 1 :(得分:2)
从错误消息中可能看出,数据库中不存在表dbo.nokernok_kommentarer
,或者它不是表,因此不可更新。
你检查过:
dbo.
而不是somethingElse.
吗?dbo.nokernok_kommentarer
是否存在?如果从代码中复制SQL并在SQL Server Management Studio之类的内容中运行SQL,那么它是否可以正常运行?