Visual Studio 2015のプログラムで、MySQLのテーブルからデータを取得しています。私はSQLに慣れていないので、これを間違った方法で一緒に行っているかもしれません。私が必要とするのは、基本的にMySQLからC#アプリケーションにテーブルを模倣することです。 DataSet4という名前の新しいデータセットを作成しました。その中にDataTable1というテーブルがあります。このテーブルにはIDと名前の2つの列があります。今、私のコード(以下に示す)は、テーブルから最初の行だけを取り出します。 mySQLからすべての行を引き出すためにforeachループを追加するにはどうすればよいですか?私はこれを明確に述べたことを願っています。もしそうでなければ、私が試して説明できることをします。これよりもはるかに多くのことがありますが、私はそこから理解できるように感じます。私はテーブルを直接引っ張るデータセットを設定しようとしましたが、Visual Studioがフリーズしていました。Visual Studio 2015のdataTableをデータベースのテーブルに入れます。
private void button7_Click(object sender, EventArgs e)
{
try
{
cnC03.Open();
s = "SELECT * FROM c03.tbl_kit t;";
mcd = new MySqlCommand(s, cnC03);
mdr = mcd.ExecuteReader();
if (mdr.Read())
{
DataRow newDataRow = dataSet4.Tables["DataTable1"].NewRow();
newDataRow["ID"] = mdr.GetString("ID");
newDataRow["Name"] = mdr.GetString("Name");
dataSet4.Tables["DataTable1"].Rows.Add(newDataRow);
}
else
{
MessageBox.Show("No Data");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
mdr.Close();
cnC03.Close();
}
}
新コード:
private void button7_Click(object sender, EventArgs e)
{
try
{
s = "SELECT ID, Name FROM c03.tbl_kit";
using (cnC03)
using (MySqlCommand mcd2 = new MySqlCommand(s, cnC03))
{
cnC03.Open();
using (MySqlDataReader mdr = mcd2.ExecuteReader())
{
DataTable dt = new DataTable("DataTable1");
dt.Load(mdr);
dataSet4.Tables.Add(dt);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
http://www.aspsnippets.com/Articles/Fill-Populate-DataTable-using-MySqlDataAdapter-in-C-and-VBNet.aspx –
どのように多くのようなものを書きます行はあなたが期待している?また、リソースを 'using'ブロックで囲みます。 – Drew
私はこれを複数のテーブルに対して行います。たとえば、この表には3行しかありませんが、他の表には20,000プラス行があります。使用ブロックに慣れていない。 –