C# Mysql mehrere Abfragen

Ich versuche zu bauen, ein kleines status-tool. Ich brauche, um die Ergebnisse mehrerer Abfragen (etwa 4-5). Die Allgemeine Anschluss-setup und 'how-to-read-Daten" wird bereits getan, aber ich kann nicht herausfinden, wie die andere Abfrage ausgeführt.

Alles, was ich gefunden während der Suche für Sie es ist für die SqlClient. Im völlig überfordert mit dieser.

Hier ist mein code bisher (Geduld, ich bin ein Neuling auf diesem):

private void button1_Click(object sender, EventArgs e)
        {
            if(listView1.Items.Count > 1)
            {
                listView1.Items.Clear();
            }
            var listMember = new List<string>{};
            var listOnline = new List<string>{};

            //SQL PART //
            string connString = "Server=10*****;Port=3306;Database=e***;Uid=e***;password=********************;";
            MySqlConnection conn = new MySqlConnection(connString);
            MySqlCommand command = conn.CreateCommand();
            command.CommandText = "SELECT fullname,online FROM member WHERE active = '1' ORDER BY online DESC";
            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                listView1.Items.Add("Error: " + ex);
            }
            MySqlDataReader reader = command.ExecuteReader();
            while(reader.Read())
            {
                listMember.Add(reader["fullname"].ToString());
                listOnline.Add(reader["online"].ToString());
            }
            conn.Close();
            //SQL ENDING //

            //SET ENTRIES TO LISTVIEW //
            int counter = 0;
            foreach(string member in listMember)
            {
                ListViewItem item = new ListViewItem(new[] { member, listOnline.ElementAt(counter) });
                item.ForeColor = Color.Green;
                listView1.Items.Add(item);

                counter++;
            }
        }

Ich bin nicht wirklich sicher, wie sich das design/layout Aussehen wird, am Ende, so möchte ich nur anfügen, die Ergebnisse zu Listen, die in der sql-Teil, um die Daten später aus den Listen.

Muss ich wirklich haben, um das setup eine komplette neue Verbindung nach conn.Schließen()? Oder gibt es eine andere Möglichkeit? Ich kann mir nur vorstellen: 5 Abfragen mit eigenen Verbindungs -, try -, catch-und 2-Schleifen... dies wird etwa 100-200 Zeilen nur für das abrufen der Ergebnisse von 5 Abfragen. Ist das nicht ein bisschen zu viel für so eine einfache Sache?

Hoffnung für etwas Hilfe.
Grüße.

Nach der neuen Kommentare meiner neuesten code:

Top:

public partial class Form1 : Form
{
    public static string connString = "Server=10****;Port=3306;Database=e****;Uid=e****;password=****;";
    public Form1()
    {
        InitializeComponent();
        MySqlConnection conn = new MySqlConnection(connString); //Error gone!
    }

Körperteil:

 public void QueryTwoFields(string s, List<string> S1, List<string> S2)
        {
            try
            {
                MySqlCommand cmd = conn.CreateCommand(); //ERROR: conn does not exist in the current context.
                cmd.CommandType = CommandType.Text;
                string command = s;
                cmd.CommandText = command;
                MySqlDataReader sqlreader = cmd.ExecuteReader();
                while (sqlreader.Read())
                {
                    S1.Add(sqlreader[0].ToString());
                    S2.Add(sqlreader[1].ToString());
                }
                sqlreader.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

private void button1_Click(object sender, EventArgs e)
        {
            if(listView1.Items.Count > 1)
            {
                listView1.Items.Clear();
            }
            var listMember = new List<string>{};
            var listOnline = new List<string>{};

            using (conn) //ERROR: conn does not exist in the current context.
            {
            conn.Open();
            ///...1st Query
            QueryTwoFields("SELECT fullname,online FROM member WHERE active = '1' ORDER BY online DESC",listMember,listOnline);
            //...2nd query
            //QueryTwoFields("your new Select Statement", otherList, otherList); 
            }
        }
  • Schöne Frage und Antworten.
InformationsquelleAutor C4d | 2014-09-04
Schreibe einen Kommentar