1

まず、これは C# での私の最初の試みです。私の問題は、データテーブル、リスト、または mysqldatareader を使用しているかどうかにかかわらずです。クエリは 1 つの結果のみを返し、テーブルの最後の結果のみを返します。

私のテーブルの値は次のとおりです(Col名が最初):Index City 1 Paris 2 London

私の 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

1 に答える 1

4

次の行を除いて、すべてのレコードを 1 つずつ取得します。

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

現在のレコードのみを取得する割り当てがあります。代わりにこれを試してください:

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

重要な部分は+=. これは、前の値を上書きするのではなく、行が追加されることを意味します。

于 2013-03-03T18:31:31.893 に答える