我正在尝试使用数组中的值将值插入“cmdmysql.Parameters.Add”。但它生成的异常值已定义。以下是我的代码:
cmdmysql.CommandType = System.Data.CommandType.StoredProcedure;
string cd = ab;
string[] words = ab.Split(' ');
foreach (string word in words)
{
cmdmysql.Parameters.Add("@_maxvalue", MySqlDbType.Double).Value = words[0];
cmdmysql.Parameters.Add("@p_userid", MySqlDbType.Double).Value = words[1];
cmdmysql.Parameters.Add("@p_templateid", MySqlDbType.Double).Value = words[2];
cmdmysql.Parameters.Add("@p_resultid", MySqlDbType.Double).Value = words[3];
cmdmysql.Parameters.Add("@p_duration", MySqlDbType.Decimal).Value = words[4];
cmdmysql.Parameters.Add("@p_mode", MySqlDbType.VarChar).Value = words[5];
cmdmysql.Parameters.Add("@p_status", MySqlDbType.VarChar).Value = words[6];
cmdmysql.Parameters.Add("@p_description", MySqlDbType.Double).Value = words[7];
cmdmysql.Parameters.Add("@p_id", MySqlDbType.Double).Direction = System.Data.ParameterDirection.Output;
}
例如,如果我尝试使用words[0]将值插入到@p_maxvalue中,则会生成异常@p_maxvalue已定义。 有人对此有想法吗?
最佳答案
不要使用循环。
if(words.Length==8)
{
cmdmysql.Parameters.Add("@_maxvalue", MySqlDbType.Double).Value = words[0];
cmdmysql.Parameters.Add("@p_userid", MySqlDbType.Double).Value = words[1];
cmdmysql.Parameters.Add("@p_templateid", MySqlDbType.Double).Value = words[2];
cmdmysql.Parameters.Add("@p_resultid", MySqlDbType.Double).Value = words[3];
cmdmysql.Parameters.Add("@p_duration", MySqlDbType.Decimal).Value = words[4];
cmdmysql.Parameters.Add("@p_mode", MySqlDbType.VarChar).Value = words[5];
cmdmysql.Parameters.Add("@p_status", MySqlDbType.VarChar).Value = words[6];
cmdmysql.Parameters.Add("@p_description", MySqlDbType.Double).Value = words[7];
cmdmysql.Parameters.Add("@p_id", MySqlDbType.Double).Direction = System.Data.ParameterDirection.Output;
}
关于c# - 使用数组将输入值分配给 cmdmysql.Parameters.Add,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676745/