Har en testkod nedan med syftet att bara hämta en post ur en tabell och visa en post i en label. Ja, det är nog antalet poster du får ut på det sättet. Är det första posten du vill visa? Testa i sådana fall (skrivet ur huvudet, så det innehåller säkert småfel): Hej Kan du skriva ut koden du använder? (För jag tror inte den ser ut som den Johan skrev nämligen ;) ) Hej Hurvida den är vettig eller itne kan jag inte svara på (men det känns lite, lite som att skjuta mygg med kanon :) ), däremot har du ett fel i koden du funderade på sist. <b>Är min kod i övrigt ett vettigt sätt att göra en enkel uppgift som jag försökt göra här eller går det att förenkla.</b> Lysande... jag försöker nedgradera från kanon till flugsmälla och myggspray. Hoppas jag lyckas :-)Databas med C#
Det fungerar, bortsett från att värdet jag får är siffran 4. Fältet i databasen innehåller text. I databasen finns 4 poster, om det nu är det som visas !?
Vad missar jag här när jag försöker hämta databasposten.
protected void Button1_Click(object sender, EventArgs e)
{
// SQL-fråga
string Sql = "SELECT fnamn FROM tbtest";
// Instans
OleDbConnection lab3ConnectionString = new OleDbConnection();
lab3ConnectionString.ConnectionString = WebConfigurationManager.ConnectionStrings["lab3ConnectionString"].ConnectionString;
// Instans
OleDbCommand myCommand = new OleDbCommand(Sql, lab3ConnectionString);
// Instans
DataSet ds = new DataSet();
// Instans
OleDbDataAdapter myAdapter = new OleDbDataAdapter();
myAdapter.SelectCommand = myCommand;
lab3ConnectionString.Open();
Label1.Text = (Convert.ToString(myAdapter.Fill(ds, "fnamn")));
}
//TorbjörnSv: Databas med C#
myAdapter.Fill(ds, "fnamn");
if (ds.Tables[0].Rows.Count > 0)
{
Label1.Text = ds.Tables[0].Rows[0]["fnamn"].ToString();
}
/JohanSv:Databas med C#
Resultat blir tyvärr detsamma som innan, "4"
Det jag vill se är i själva verket innehållet i fältet "Pelle" eller "kalle". Inte en siffra :-)
Koden är som sagt bara i testsyfte för att lära mig hantera databaser i ASP.NET.
Ändrar jag SQL-frågan till detta, så får jag värdet "1", inte "Pelle" som det borde
string Sql = "SELECT fnamn FROM tbtest WHERE enamn='Persson'";
//TorbjörnSv: Databas med C#
Sv:Databas med C#
Nej det har du rätt i, jag missade en rad i Johans kod, Tack för påpekandet
Nu får jag helt riktigt ut rätt innehåll.
Jag inte har full koll på ADO.NET ännu, inte ASP.NET eller C# heller om jag vara uppriktig. På något sätt känns det som jag överjobbar det här med databasen. Är min kod i övrigt ett vettigt sätt att göra en enkel uppgift som jag försökt göra här eller går det att förenkla.
en annan kort fråga på samma gång:
Om jag vill konkatenera i samma label. Mitt exempel nedan funkar inte
Label1.Text = ds.Tables[0].Rows[0]["fnamn"]+" "+["enamn"].ToString();
mvh
TorbjörnSv: Databas med C#
Istället för:
Label1.Text = ds.Tables[0].Rows[0]["fnamn"]+" "+["enamn"].ToString();
borde det vara:
Label1.Text = ds.Tables[0].Rows[0]["fnamn"]+" "+ds.Tables[0].Rows[0]["enamn"].ToString();Sv: Databas med C#
Jag skulle skippat datasetet:
protected void Button1_Click(object sender, EventArgs e)
{
// SQL-fråga
string Sql = "SELECT fnamn FROM tbtest";
// Instans
OleDbConnection lab3ConnectionString = new OleDbConnection();
lab3ConnectionString.ConnectionString = WebConfigurationManager.ConnectionStrings["lab3ConnectionString"].ConnectionString;
// Instans
OleDbCommand myCommand = new OleDbCommand(Sql, lab3ConnectionString);
lab3ConnectionString.Open();
Label1.Text = myCommand.ExecuteScalar().ToString();
}
/JohanSv:Databas med C#
Både datainstansen och konkateneringen är bättre än det jag åstadkommit.
Jag stoppade in alla fält i variabler och konkatenerade dem i label, det är väl ett sätt göra
det på men det är skoj att se andra.
Jag lär nog återkomma med fler frågor här framöver känns det som.
STORT TACK FÖR ER HJÄLP !!!!
mvh
Torbjörn