Hej! För att lägga till en post så använder du en insert-fråga, för att ta bort poster så använder du en delete-fråga och för att uppdatera poster så använder du en update-fråga. Tack, lyckades få till det tillslut. Troligen för att frågan inte hittar någon post så att datareadern är tom.Hantera informationen i Access med c#
Jag tänkte höra om det är någon som vet hur, eller var man kan få en bra beskrivning på, hur man hanterar informationen i en access databas. Jag använder C# som språk.
Det jag vill kunna göra är:
-Lägga till en nya rader i en tabell
-Ta bort rader
-Uppdaterar rader.
Har lyckats med att läsa in en rad iaf. Det gjorde jag så här:
OleDbConnection ConnectDb = new OleDbConnection();
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" + HttpContext.Current.Server.MapPath("db1.mdb");
string strResult = "";
ConnectDb.ConnectionString = strConn;
ConnectDb.Open();
OleDbCommand thisCommand = ConnectDb.CreateCommand();
thisCommand.CommandText = "SELECT * FROM Tabell1";
OleDbDataReader thisReader = thisCommand.ExecuteReader();
thisReader.Read();
strResult = thisReader["Efternamn"].ToString();
ConnectDb.Close();
Tack på förhand!Sv: Hantera informationen i Access med c#
Exempel:
OleDbConnection ConnectDb = new OleDbConnection();
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" + HttpContext.Current.Server.MapPath("db1.mdb");
ConnectDb.ConnectionString = strConn;
ConnectDb.Open();
OleDbCommand thisCommand = ConnectDb.CreateCommand();
thisCommand.CommandText = "update Tabell1 set Efternamn='Jansson' where id=42";
thisCommand.ExecuteNonQuery();
ConnectDb.Close();
En annan fråga...
Är ganska så ny på den här fronten, så jag har en till fråga.
Har gjort en metod som ska läsa in en rad i databasen, beroende på id nr, och skapa ett objekt av den. Men det fungerar inte.
Får felmeddelandet:
Row handle is invalid.
Varför fungerar det inte??
public static Anvandare Ladda(int id)
{
OleDbConnection ConnectDb = new OleDbConnection();
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" +
HttpContext.Current.Server.MapPath("sisdb.mdb");
ConnectDb.ConnectionString = strConn;
ConnectDb.Open();
OleDbCommand thisCommand = ConnectDb.CreateCommand();
thisCommand.CommandText = "SELECT * FROM anvandare WHERE id =" + id;
OleDbDataReader thisReader = thisCommand.ExecuteReader();
thisReader.Read();
Anvandare a = new Anvandare();
a.Anvandarnamn = thisReader["anvandare"].ToString();
a.Losen = thisReader["losen"].ToString();
a.Epost = thisReader["epost"].ToString();
ConnectDb.Close();
return a;
}Sv: En annan fråga...
Metoden Read() returnerar en boolean som talar om ifall det fanns flera poster. Om den returnerar false så fanns det ingen post, då kan du heller inte läsa något ifrån datareadern, utan bör hantera det felet på något lämpligt sätt. Till exempel så kan du returnera null, eller kasta ett undantag (exception).