MySqlDataAdapter myAd = new MySqlDataAdapter();

 

Du musst diesem Konstruktor die Connection und das Command Objekt �bergeben, sonst weiss der Adapter nicht was

er machen soll.

 

Andr�

 

-----Urspr�ngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Sven Arndt
Gesendet: Montag, 19. Juli 2004 11:07
An: C#
Betreff: [CSharp.net] DataSet in eigener Klasse

 

Hallo,

 

ich m�chte in einer Klasse eine Connection zu einer DB herstellen, Daten aus den DB Tabellen auslesen und ein DataSet f�llen. Dieses DataSet m�chte ich dann normal im Programm weiter verwenden.

Die Connection aufzubauen funktioniert, aber irgendwie wird das DataSet nicht gef�llt. Das ist der Fehler den ich erhalte:

 

"The SelectCommand property has not been initialized before calling 'Fill' "

 

Code der Klasse:

 

public class MySqlCon
{
  public string cmdMySQL;
  public MySqlConnection myCon;
  public MySqlCommand myCmd;
 
  public MySqlCon()
  {
    string strCon = "Server...";
    myCon = new MySqlConnection(strCon);
    try
    { ... }
    catch(Exception e)
    { ... }
  }
  
  public void MySqlCmd(string cmdMySQL)
  {
    try
    {
      MySqlCommand myCmd = new MySqlCommand();
      myCmd.CommandText = cmdMySQL;
      myCmd.Connection = myCon;
    }
    catch(Exception e)
    { ... }
  }

 

  public DataSet GetData()
  {
    try
    {
 MySqlDataAdapter myAd = new MySqlDataAdapter();
 myAd.SelectCommand = myCmd;
 DataSet myDs = new DataSet("data");
 myAd.Fill(myDs, "data");
 myCon.Close();
 return  myDs;
    }
    catch(Exception e)
    { ... }
    return null;
  }
}

 

Verwendung im Programm:

 

public MainForm()
{
  InitializeComponent();
  MySqlCon newCon = new MySqlCon();
  newCon.MySqlCmd("SELECT ... ");
  DataSet ds = newCon.GetData();
  if(ds != null)
  { ... }
  else
  { ... }
}

 

 

Was mache ich falsch?

 

 

Gru�,

Sven

 

Antwort per Email an