21. maj 2007 - 22:06Der er
8 kommentarer og 1 løsning
Håndtering af output fra SQL forespørsel
Jeg har en private lånedatabase. I denne database er der en liste af kunder. Lad os antage, at jeg lave en tabel med feltet navn, og feltet adresse. Hvorledes for jeg så lavet en sql-forespørgsel på alle kunder, der feks bor i Fredensgade? Noget i retning af sql="select * from kunder where adresse='?? ' og så kan jeg ikke mere. Og videre : hvordan håndtere jeg output fra forespørgslen? Jeg skal formodentlig bruge et recordset til at modtage data. Og fra recordsætten kan jeg så overføre data til en liste i winform. Nogen der kan hjælpe ? Michael
string connStr = "user id=sa;" + // angives hvis der er password på DB "database=minDB";
// lav en connection SqlConnection con = new SqlConnection(connStr);
string sql; SqlCommand cmd; // læs tabellen orders try { // åbn forbindelse til database con.Open();
// konstruér en SQL kommando sql = "SELECT avg(Freight) FROM orders"; cmd = new SqlCommand(sql, (SqlConnection)con);
object gennemsnit = cmd.ExecuteScalar(); // anvendes når retur er enkelt værdi Console.WriteLine("Gennemsnit " + gennemsnit); } catch (Exception ex) { Console.WriteLine("fejl: " + ex.Message); } finally { // luk forbindelse til databasen con.Close(); }
// læs tabellen Orders try { // åbn forbindelse til database con.Open();
// konstruér en SQL kommando sql = "SELECT Freight FROM Orders"; cmd = new SqlCommand(sql, (SqlConnection)con);
// udfør SELECT og skab en reader SqlDataReader reader = cmd.ExecuteReader(); // anvendes når flere værdier retur
// læs alle post i resultattabellen decimal sum = 0; decimal antal = 0; while (reader.Read()) { object o = reader["Freight"]; Decimal d = (Decimal)o; sum = sum + d; antal++; } Console.WriteLine("Sum: " + sum); Console.WriteLine("\r\nAntal: " + antal); } catch (Exception ex) {
} finally { // luk forbindelse til databasen con.Close(); }
Der findes endnu en command : ExecuteNonQuery() som anvendes når der intet returneres som f.eks. ved insert, update og delete. Connectionstr. afhænger af hvilken DB du bruger ligeledes for connectiontype. SqlConnection benyttes til SQL-servere OleDbConnection til f.eks. Access-database eller SQL-servere osv.
Der var problemet. Jeg havde glemt databasen. Her er point. Og undskyld ventetid!!
Michael
Synes godt om
Ny brugerNybegynder
Din løsning...
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.