2013-03-03 29 views
1

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

我的表值(西名字在前): 指数城市 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(); 
     } 
    } 

} 
} 

回答

4

你得到所有的记录一个接一个,但该行:

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

有一个赋值只获取当前记录。请试试这个:

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

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

+0

这是完美的;还要注意, DataTxtBox.Text + = rdr [0] .ToString()+“|”+ rdr [1] .ToString(); 已更改为: DataTxtBox.Text + = rdr [0] .ToString()+“|”+ rdr [1] .ToString()+“\ r \ n”; – 2013-03-03 18:57:52