C# 如何使用列表在DataGridView中显示查询结果<;T>;
我目前正在学习如何用C语言编写代码。我第一次能够连接MySQL数据库实例!在我的代码中,我进行了SQL查询并将数据放入列表中。我想将列表中存储的数据显示到DataGridView中 我在网上找到了几种不同的方法,但都不管用。我尝试使用foreach循环来显示结果 我在类中的代码:C# 如何使用列表在DataGridView中显示查询结果<;T>;,c#,mysql,visual-studio,C#,Mysql,Visual Studio,我目前正在学习如何用C语言编写代码。我第一次能够连接MySQL数据库实例!在我的代码中,我进行了SQL查询并将数据放入列表中。我想将列表中存储的数据显示到DataGridView中 我在网上找到了几种不同的方法,但都不管用。我尝试使用foreach循环来显示结果 我在类中的代码: public List<string>[] Select() { string query = "SELECT * FROM users"; //Creat
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;
}
}
当我尝试显示结果时,我得到一个只显示“长度”的表,每个表都填充了一个数字。如果您可以使用
DataTable
direclty,您可以将其分配给Gridview的Datasource
if (this.OpenConnection() == true)
{
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = con;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "SELECT * FROM users";
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);
DataTable dtRecord = new DataTable();
sqlDataAdap.Fill(dtRecord);
dataGridView1.DataSource = dtRecord;
}
如果要填写按钮单击事件,请从
Select()
返回数据表,然后在按钮单击中仅设置数据源。这是WinForms还是Webforms?您正在多次更新dataGridView1.DataSource。您应该删除foreach循环,并将代码更改为dataGridView1.DataSource=test.Select();。让我知道它是否有助于防止此类繁琐的代码,同时DataTable也可以很好地显示数据。您还需要了解DBProvider对象的工作原理,因为打开和关闭一个连接是次优的
if (this.OpenConnection() == true)
{
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = con;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "SELECT * FROM users";
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);
DataTable dtRecord = new DataTable();
sqlDataAdap.Fill(dtRecord);
dataGridView1.DataSource = dtRecord;
}