C# 使用C连接到MySql
我在Load窗体中运行此函数,以在c中显示从数据库到dataGridView的信息。问题是表单在尝试访问和检索数据之前会弹出。下面是它如何在调试器中运行。我运行下面的函数C# 使用C连接到MySql,c#,mysql,ado.net,C#,Mysql,Ado.net,我在Load窗体中运行此函数,以在c中显示从数据库到dataGridView的信息。问题是表单在尝试访问和检索数据之前会弹出。下面是它如何在调试器中运行。我运行下面的函数 public void loadData() { var list = mysql.Select(); try { //start from first row for (int i = 0; i < dataGridView1.RowCount; i++)
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处停止并弹出窗口窗体。有人能告诉我发生了什么事吗
这是Mysql。选择
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;
}
请用你问题的具体主题替换毫无意义的标题。@A他/她刚刚删除了那个代码-它的形式是_loads,停止是什么意思?它是否达到了你设定的断点?有错误吗?您是否尝试使用whiledataReader.Read在行上放置断点?在“选择”功能中,它将成功运行,直到到达MySqlDataReader并显示表单而不进入while循环。如果cmd.ExecuteReader没有返回任何记录,则dataReader.Read将返回false。您确定要从数据库中获取数据吗?它仍然会在MySqlDataReader中弹出表单。我还能做什么?将Select代码放入try-catch中我认为那里有一个空异常