C# 难以用参数从存储过程填充datagrid
给出错误: “输入字符串的格式不正确”C# 难以用参数从存储过程填充datagrid,c#,mysql,parameters,datagrid,procedure,C#,Mysql,Parameters,Datagrid,Procedure,给出错误: “输入字符串的格式不正确” City是mysql服务器中的varchar。任何帮助都将不胜感激。请检查存储过程中@city的类型。如果它与你投的东西不匹配,它会拒绝它。你试过这个吗 protected DataTable RetrieveAlumni2() { { MySqlConnection con = new MySqlConnection("server=100.0.0.0;user id=id;pass
City是mysql服务器中的varchar。任何帮助都将不胜感激。请检查存储过程中@city的类型。如果它与你投的东西不匹配,它会拒绝它。你试过这个吗
protected DataTable RetrieveAlumni2()
{
{
MySqlConnection con = new MySqlConnection("server=100.0.0.0;user id=id;password=pass;database=db;persistsecurityinfo=True");
MySqlCommand cmd = new MySqlCommand("get_alumni_by_city", con);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
try
{
string city = textBox1.Text;
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@city", SqlDbType.VarChar).Value = city;
da.SelectCommand = cmd;
cmd.ExecuteNonQuery();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
cmd.Dispose();
con.Close();
}
return dt;
}
}
您在哪一行获得此错误?城市的价值是多少?城市获取校友的定义是什么?调试代码并告诉我们。表/存储过程中varchar字段的长度是多少?位于cmd.ExecuteNonQuery();city的值是任意varchar(45),get_Alumbers_by_city是MySql中的存储过程。请确保不要传递无效字符,例如uni-code字符都是varchar(45),这很奇怪。
cmd.Parameters.AddWithValue("@city","" + city + "");