Avatar billede area404 Nybegynder
23. februar 2009 - 14:44 Der er 7 kommentarer og
1 løsning

Læs database..

Hej med jer,

Har lidt problemer med at læse fra en database.
Koden ser således ud:
                MySqlConnection mySql = new MySqlConnection();
                mySql.CreateConn();

                SqlDataReader DataReader = null;
                SqlCommand Command = new SqlCommand("select * from tabel");
                DataReader = Command.ExecuteReader();
                while (DataReader.Read())
                {
                    label4.Text += (DataReader["NAVN"].ToString());
               
                }
                mySql.Command.Dispose();
                mySql.Connection.Close();
                mySql.CloseConn();

Min exeption fejl lyder således:
ExecuteReader: Connection property has not been initialized.

... help!
Jeg mangler min SQL connection?!

/Ron
Avatar billede arne_v Ekspert
23. februar 2009 - 14:48 #1
SqlCommand Command = new SqlCommand("select * from tabel");

->

SqlCommand Command = new SqlCommand("select * from tabel", mySql);
Avatar billede arne_v Ekspert
23. februar 2009 - 14:49 #2
din command havde ikke faaet at vid ehvilken connection den skal bruge
Avatar billede arne_v Ekspert
23. februar 2009 - 14:50 #3
PS: Med stor sandsynlighed er du bedre tjent med en anden kontrol en Label naar du skal gemme flere vaerdier. Der er kontroller hvor du bar siger:

minkontrol.DataSource = mindatareader;

og saa soerger kontrollen for det hele.
Avatar billede area404 Nybegynder
23. februar 2009 - 14:56 #4
ved godt med label, det var bare for at teste min connection.
umiddelbart fungere det ikke bare at tilføje mySql.. er det ikke navnet på min connection som skal tilføjes der?
Avatar billede area404 Nybegynder
23. februar 2009 - 15:04 #5
SqlCommand Command = new SqlCommand("select * from tabel", mySql.Connection);
DOH!

smid svar, tak :-)
Avatar billede arne_v Ekspert
23. februar 2009 - 15:41 #6
udfra

MySqlConnection mySql = new MySqlConnection();

antog jeg at mySql var navnet paa din connection.
Avatar billede arne_v Ekspert
23. februar 2009 - 15:41 #7
og svar
Avatar billede Knobtemor Nybegynder
24. februar 2009 - 11:48 #8
Hej Area404

Jeg laver altid en klasse der håndtere connection objektet, derefter klassen den håndtere selve command objektet.

Det går det lidt nemmere at smide SQL expections ud i console eller på et eventuelt error UI område... Men det kommer egentlig ikke sagen ved.

Her er et eksempel:

private SqlConnection EstablishConnection()
{
  string securityString = @"Data Source=localhost;Initial Catalog=databaseNavn;Persist Security Info=True;User ID=Brugernavn;Password=kodeord;";
           
  try
  {
      sqlCon = new SqlConnection(securityString);
      sqlCon.Open();
  }
  catch (SqlException sqle)
  {
      Debug.WriteLine("SQL ERROR: " + sqle.ToString());
  }
  return sqlCon;
}


private void GetAndInitializeTables(SqlConnection sqlCon)
{
  private SqlCommand sqlcom = new SqlCommand();
  sqlcom.Connection = sqlCon;
  sqlcom.CommandText = ("SELECT * FROM table WHERE something = " + value);

  SqlDataReader reader = sqlcom.ExecuteReader();

  while(reader.Read())
  {
      //do stuff
  }
  reader.close();
}

Så skal du naturligvis udskifte variable navne med dine input...
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