C#.NET MySql仅返回最后的结果

时间:2013-03-03 18:28:30

标签: c# mysql .net forms

首先,这是我第一次尝试C#。 我的问题是,无论我使用数据表,列表还是mysqldatareader;查询只返回一个结果,只返回表的最后一个结果。

我的表值是(Col名称优先): 索引城市 1巴黎 2伦敦

我的C#最后一次代码尝试是:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace MySQL_Sample
{

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }


    private void button1_Click(object sender, EventArgs e)
    {
        //MySql connections
        MySqlConnection connection;
        string host;
        string db;
        string uid;
        string pass;
        host = "localhost";
        db = "sample";
        uid = "root";
        pass = "";
        string ConnectionString = "SERVER=" + host + ";" + "DATABASE=" + db + ";" + "UID=" + uid + ";" + "PASSWORD=" + pass + ";";
        connection = new MySqlConnection(ConnectionString);
        connection.Open();
        //MySql Commands
        string sql = "SELECT * FROM table1";
        MySqlCommand cmd = new MySqlCommand(sql, connection);
        MySqlDataReader rdr = cmd.ExecuteReader();
        //MySql Call back
        while(rdr.Read())
        {
            DataTxtBox.Text = rdr[0].ToString() + " | " + rdr[1].ToString();
        }
    }

 }
}

1 个答案:

答案 0 :(得分:4)

你逐一获得所有记录,但行:

DataTxtBox.Text = rdr[0].ToString() + " | " + rdr[1].ToString();

有一个只获得当前记录的作业。相反,试试这个:

DataTxtBox.Text += rdr[0].ToString() + " | " + rdr[1].ToString();

重要的是+=。这意味着行追加而不是覆盖以前的值。