首先,这是我第一次尝试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();
}
}
}
}
答案 0 :(得分:4)
你逐一获得所有记录,但行:
DataTxtBox.Text = rdr[0].ToString() + " | " + rdr[1].ToString();
有一个只获得当前记录的作业。相反,试试这个:
DataTxtBox.Text += rdr[0].ToString() + " | " + rdr[1].ToString();
重要的是+=
。这意味着行追加而不是覆盖以前的值。