Avatar billede langthjem Nybegynder
07. maj 2006 - 17:45 Der er 5 kommentarer og
1 løsning

Hente enkelt felt fra MySql

Jeg er ved at lære mig ASP.NET/C#, og jeg kommer fra alm. ASP.
Det gør selvfølgelig at der er nogle ting som man gerne vil kunne, og indtil videre er jeg rendt ind i at jeg godt kunne tænke mig at hente et enkelt felt, eller enkelt række, ud fra en MySql database og så bruge de data jeg får ud til at gøre nogle ting, men hvordan får jeg dataene over i variable så jeg kan f.eks. lave beregninger på dem?
Avatar billede snepnet Nybegynder
07. maj 2006 - 21:15 #1
du kan gøre det på flere måder - afhængig af hvad du skal med dem... Her er én:

using(SqlConnection connection = new SqlConnection("dinconnectionstring"))
using(SqlCommand command = new SqlCommand("select ditten from datten where dattenid=12", connection))
{
  command.Connection.Open();
  string s = command.ExecuteScalar() as string;
  someLabel.Text = s;
  connection.Close();
}
ExecuteScalar kan benyttes når du kun får én enkelt værdi tilbage fra din forespørgsel.
Hvis du fårflere kan du laver sådan noget her:

using(SqlConnection connection = new SqlConnection("dinconnectionstring"))
using(SqlCommand command = new SqlCommand("select * from someTabel", connection))
{
  command.Connection.Open();
  using(SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
  {
    while(reader.Read())
    {
      // her kan du så hente værdierne fra readeren - f.eks.
      obejct o = reader[0];
      string s = reader.GetString(1);
      int i = reader.GetInt32(reader.GetOrdinal("SomeNumberColumnName");
    }
  }
}

hvis du vil arbejde med et disconnectet "recordset" (som er afløst af et DataSet) skal du benytte en adapter:

DataSet data = new DataSet();
using(SqlConnection connection = new SqlConnection("dinconnectionstring"))
using(SqlCommand command = new SqlCommand("select * from someTabel", connection))
using(SqlDataAdapter adapter = new SqlDataAdapter(command))
{
    adapter.Fill(data);
}

Efterfølgende kan du så arbejde med dine data... Et DataSet er i vid udstrækning som en relationel database i hukommelsen - og du kan arbejde med indholdet med kode som dette:

foreach(DataTable table in data.Tables)
{
  foreach(DataRow row in table.Rows)
  {
    string s row["SomeColumnName"].ToString();
  }
}

Og du kan self. gøre en masse andre ting og sager med det.

Mvh
Avatar billede snepnet Nybegynder
07. maj 2006 - 21:17 #2
Og når det så er MySql - bør du hente en MySqlConnector fra MySql (http://dev.mysql.com/downloads/connector/net/1.0.html) - benytte den, og skifte "Sql" ud med MySql i ovenstående kode :o)
Mvh
Avatar billede langthjem Nybegynder
07. maj 2006 - 22:55 #3
Ski' godt! Tak for hjælpen! Du har lige bekræftet hvad jeg fandt 5 min efter at jeg postede her: http://dev.mysql.com/doc/refman/5.0/en/odbc-net-op-c-sharp-cp.html
Smid et svar!
Avatar billede langthjem Nybegynder
07. maj 2006 - 22:56 #4
Btw, jeg bruger allerede MySqlConnector ;-)
Avatar billede snepnet Nybegynder
07. maj 2006 - 23:02 #5
Et svar kommer her :o)
Mvh
Avatar billede snepnet Nybegynder
07. maj 2006 - 23:02 #6
Eller i hvert fald her ;o)
Mvh
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester