我有一个带有点击事件的按钮:
private void btnShow_Click(object sender, EventArgs e)
{
MySqlConnection con = new MySqlConnection("SERVER=localhost;DATABASE=airdb;UID=root;PASSWORD=123456");
con.Open();
DataTable dt = new DataTable();
MySqlCommand cm = new MySqlCommand("CALL GetClient()", con);
MySqlDataAdapter da = new MySqlDataAdapter(cm);
da.Fill(dt);
con.Close();
dataGridView1.DataSource = dt;
}
在第一次单击时,它使用从存储过程“GetClient”检索的数据填充dataGridView1,没有任何问题。但是当我再次单击该按钮时,它会从存储过程返回0,并且dataGridView1上的所有数据都会消失。第三次单击它再次运行良好,第四次单击它返回计数0,第五次单击罚款,第六次单击失败,...(类似于下一次单击)
但是当我将代码更改为:
DataTable dt = MySqlHelper.ExecuteDataset("SERVER=localhost;DATABASE=airdb;UID=root;PASSWORD=123456", "CALL GetClient()").Tables[0];
dataGridView1.DataSource = dt;
它适用于所有情况。
所以我想知道第一个代码是否有任何问题。
存储过程:select * from Client
答案 0 :(得分:1)
周日
我认为你提出了断点并检查了流程,究竟是什么问题发生了。甚至我建议你将commandType存储为存储过程
MySqlCommand cm = new MySqlCommand("Your SP NAMe", con);
cm.Parameters.AddWithValue("YourParameters","Value);
cm.CommandType=CommandType.StoredProcedure ;
我希望你的代码可以使用。