SQL-Server: Ungültiger Objektname bei der Ausführung der Abfrage
Ich versuche, eine Insert-Anweisung auszuführen, aber immer eine Invalid object name
Fehler.
Hier ist mein code:
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();
}
Und hier ist meine Fehlermeldung:
System.Daten.SqlClient.SqlException:
Ungültiger Objektname
'dbo.nokernok_kommentarer'. bei
System.Daten.SqlClient.SqlConnection.OnError(SqlException
- Ausnahme, Boolean breakConnection) bei
System.Daten.SqlClient.SqlInternalConnection.OnError(SqlException
- Ausnahme, Boolean breakConnection) bei
System.Daten.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj) bei
System.Daten.SqlClient.TdsParser.Run(RunBehavior
runBehavior, SqlCommand cmdHandler,
SqlDataReader dataStream,
BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject
stateObj) bei
System.Daten.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
methodName, Boolean async) bei
System.Daten.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
result, String methodName, Boolean
sendToPipe) bei
System.Daten.SqlClient.SqlCommand.ExecuteNonQuery()
bei
Entwicklung.DAL.nokernokDAL.addNewComment(Int32
Benutzer-id, Int32 pageID, String title,
String Kommentar) in
C:\Inetpub\wwwroot\naaf\DAL\nokernok.cs:Zeile
49
Kann mir jemand helfen, herauszufinden, warum ich diese Fehlermeldung erhalten?
UPDATE
Ich sollte mit der richtigen Datenbank, weil Sie die folgende Abfrage funktioniert:
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;
}
Mein connection string sieht wie folgt aus:
SqlConnection connection = new SqlConnection();
SqlDataAdapter adapter = new SqlDataAdapter();
//class constructor
public nokernokDAL()
{
connection.ConnectionString = EPiServer.Global.EPConfig["EPsConnection"].ToString();
connection.Open();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist wahrscheinlich in der falschen Datenbank. Umfassen einen ersten Katalog in Ihrer Verbindungszeichenfolge:
Oder geben Sie eine drei Teil-name:
select SCHEMA_NAME(schema_id) from sys.tables where name = 'nokernok_kommentarer'
zurück?dbo
. Uh oh... hängen Sie auf... etwas testen hier..dbo.
Teil richtig ist. Haben Sie versucht, die drei Teil-name? Finden Sie den Namen der Datenbank verwendenselect DB_NAME()
Aus der Fehlermeldung, es scheint, dass die Tabelle
dbo.nokernok_kommentarer
nicht in der Datenbank existieren, oder es ist es nicht eine Tabelle und ist somit nicht aktualisierbar.Haben Sie überprüft, dass:
dbo.
und nichtsomethingElse.
?dbo.nokernok_kommentarer
existiert?Wenn Sie kopieren Sie die SQL-raus aus dem code, und führen Sie es in etwas wie SQL Server Management Studio, funktioniert es ohne Fehler gibt es?
SELECT
Abfragen, funktioniert einwandfrei.dbo.nokernok_kommentarer
, aber die Auswahl vonnokernok_skoler
. Können Sie erfolgreich WÄHLEN Sie aus der dbo.nokernok_kommentarer?