gpt4 book ai didi

c# - 使用 C# 连接到 MySql

转载 作者:行者123 更新时间:2023-11-29 02:00:58 25 4
gpt4 key购买 nike

我在加载表单中运行此函数以将信息从我的数据库显示到 c# 中的 dataGridView。问题是表单在尝试访问广告和检索数据之前弹出。这是它在调试器中的运行方式。我运行下面的函数。

public void loadData()
{
var list = mysql.Select();
try
{
//start from first row
for (int i = 0; i < dataGridView1.RowCount; i++)
{
//insert IDs
dataGridView1[0, i].Value = list[0][i];
//insert Names
dataGridView1[1, i].Value = list[1][i];
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
if (list[3][j] != null)
{
dataGridView1[j + 2, i].Value = list[3][j];
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

然后调用mysql类中的Select函数,停在MySqlDataReader,弹出Window Form。谁能告诉我发生了什么事?

这是 Mysql.Select()

public List <string> [] Select()
{
string query = "SELECT id,name,weekday,description FROM employee e INNER JOIN schedule s ON e.id=s.id";

//Create a list to store the result
List<string>[] list = new List<string>[4];
list[0] = new List<string>();
list[1] = new List<string>();
list[2] = new List<string>();
list[3] = 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["id"] + "");
list[1].Add(dataReader["name"] + "");
list[2].Add(dataReader["weekday"] + "");
list[3].Add(dataReader["description"] + "");
}

//close Data Reader
dataReader.Close();

//close Connection
this.CloseConnection();

//return list to be displayed
return list;
}
else
{
return list;
}
}

最佳答案

当它处理 MySQL 命令并从数据库中获取信息时,应用程序似乎有时间绘制表单。

简单的解决方法是这样做:

    private void frmMain_Load(object sender, EventArgs e)
{
this.visible = false;
loadData();
this.visible = true;
}

关于c# - 使用 C# 连接到 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com