我正在开发Visual Studio2015中的一个程序,该程序从MySQL中的一个表中提取数据。我是SQL的新手,所以我可能用一种错误的方式来处理这个问题。我需要的基本上是将表从MySQL模拟到C#应用程序中。我已经创建了一个名为DataSet4的新数据集,其中有一个名为DataTable1的表。该表有两列: ID和Name。现在,我的代码(如下所示)仅从表中提取第一行。我该如何添加一个foreach循环来从mySQL中提取所有行呢?我希望我说得足够清楚,如果没有,我会尽我所能来解释。还有很多比这更多的东西,但我觉得我可以从那里弄清楚。我确实尝试设置了一个直接拉取表的数据集,但这使我的Visual Studio冻结了。
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);
}
}https://stackoverflow.com/questions/38315092
复制相似问题