【发布时间】:2019-09-07 14:04:01
【问题描述】:
我目前正在学习如何用 C# 编写代码。我第一次能够连接 MySQL 数据库实例!在我的代码中,我进行了 SQL 查询并将数据放入列表中。我想将存储在 List 中的数据显示到 DataGridView 中。
我尝试了几种我在网上找到的不同方法,但似乎都没有奏效。我尝试使用 foreach 循环来显示结果。
我在课堂上的代码:
public List<string>[] Select()
{
string query = "SELECT * FROM users";
//Create a list to store the result
List<string>[] list = new List<string>[3];
list[0] = new List<string>();
list[1] = new List<string>();
list[2] = new List<string>();
//Open connection
if (this.OpenConnection() == true)
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, _connection);
//Create a data reader and Execute the command
MySqlDataReader dataReader = cmd.ExecuteReader();
//Read the data and store them in the list
while (dataReader.Read())
{
list[0].Add(dataReader["user_id"] + "");
list[1].Add(dataReader["user_name"] + "");
list[2].Add(dataReader["user_lastname"] + "");
}
//close Data Reader
dataReader.Close();
//close Connection
this.CloseConnection();
//return list to be displayed
return list;
}
else
{
return list;
}
}
这是表单内的代码:
private void Button1_Click(object sender, EventArgs e)
{
DBConnect test = new DBConnect();
foreach (var item in test.Select())
{
dataGridView1.DataSource = item;
}
}
当我尝试显示结果时,我得到一个只显示“长度”的表格,每个表格都填充了一个数字。
【问题讨论】:
-
这是 WinForms 还是 Webforms?
-
您正在多次更新 dataGridView1.DataSource。您应该删除 foreach 循环并将代码更改为 dataGridView1.DataSource = test.Select();。让我知道它是否对您有帮助
-
类是为了防止这种繁琐的代码,DataTable 也可以很好地显示数据。您还需要了解 DBProvider 对象的工作原理,因为打开和关闭一个连接是次优的
标签: c# mysql visual-studio