05. april 2006 - 11:39Der er
13 kommentarer og 1 løsning
Access problem
Hej jeg har et problem med min access database, jeg bliver ved med at få følgende fejl: System.InvalidOperationException: ExecuteReader requires an open and available Connection. The connection's current state is closed. at System.Data.OleDb.OleDbConnection.CheckStateOpen(String method) at System.Data.OleDb.OleDbCommand.ValidateConnection(String method) at System.Data.OleDb.OleDbCommand.ValidateConnectionAndTransaction(String method) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.ExecuteReader() at GetIngrediensService.GetIngrediens(String prefix, Int32 maxResults) in c:\Documents and Settings\Kenneth\Dokumenter\Visual Studio 2005\WebSites\ShoppingAssistant\App_Code\GetIngrediensService.cs:line 31
Kode:
public string[] GetIngrediens(string prefix, int maxResults) { string[] items = new string[maxResults];
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDB.4.0; Data Source=" + Server.MapPath("App_Data/ShoppingAssistant.mdb"));
OleDbCommand cmd = new OleDbCommand("SELECT [Ingrediensen] FROM Ingrediens WHERE [Ingrediensen] LIKE '" + prefix + "*' ORDER BY [Ingrediensen];", conn);
conn.Open(); OleDbDataReader reader = cmd.ExecuteReader(); //LINIE 31!!! int i = 0; while (reader.Read()) { if (i >= maxResults) break; items[i] = reader.GetString(0); i++; } conn.Close(); return items; }
ja umiddelbart ser det ikke helt galt ud.. et par ting du kan prøve
at sætte conn efter initialisering
OleDbCommand cmd = new OleDbCommand("SELECT [Ingrediensen] FROM Ingrediens WHERE [Ingrediensen] LIKE '" + prefix + "*' ORDER BY [Ingrediensen];"); cmd.Connection = conn;
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDB.4.0; Data Source=" + Server.MapPath("App_Data/ShoppingAssistant.mdb"));
måske OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDB.4.0; Data Source=" + Server.MapPath("App_Data\\ShoppingAssistant.mdb"));
System.Data.OleDb.OleDbException: Der er ikke angivet nogen værdi for en eller flere krævede parametre. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.ExecuteReader() at GetIngrediensService.GetIngrediens(String prefix, Int32 maxResults) in c:\Documents and Settings\Kenneth\Dokumenter\Visual Studio 2005\WebSites\ShoppingAssistant\App_Code\GetIngrediensService.cs:line 32
Damn, prøvede lige igen, og nu virker det selvfølgelig, så altså er det mit where statement der er noget galt med, men det mærkelige er at jeg ikke får mogen fejl i access
OleDbCommand cmd = new OleDbCommand("SELECT [Ingrediensen] FROM Ingrediens WHERE [Ingrediensen] LIKE '" + prefix + "%' ORDER BY [Ingrediensen]", conn);
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.