连接mysql,执行sql语句报错:"无法将类型为“MySqlParameter”的对象强制转换为类型“MySqlParameter 我很怀疑这个两个MySqlParameter压根就不是同一个类型 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 foreach (MySqlParameter parameter in cmdParms) { if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) { parameter.Value = DBNull.Value; } cmd.Parameters.Add(parameter); }结果发现这个循环中的问题,改为以下后,正常 foreach (MySqlParameter parameter in cmdParms) { if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) { parameter.Value = DBNull.Value; } MySqlParameter pa = new MySqlParameter(parameter.ParameterName, parameter.MySqlDbType.ToString()); pa.Value = parameter.Value.ToString(); cmd.Parameters.Add(pa); }不知道为什么,请大家指教。 在执行 cmd.Parameters.Add(pa);前,必须先new 一个MySqlParameter才行,否则执行int rows = cmd.ExecuteNonQuery();就报错 ,是怎么回事? cmdParms的定义和初始化代码放出来看看 前面的MySqlParameter内参数格式或者MySqlParameter命名空间本身可能有问题,所以重新new MySqlParameter就OK foreach (MySqlParameter parameter in cmdParms)中的MySqlParameter 与cmdParms 中的不一致吧,看看命名空间引用对了没 StringBuilder strSql=new StringBuilder(); strSql.Append("insert into report("); strSql.Append("RequestNum,PatientName,PatientSex,PatientRecordNo,SampleType,SampleState,.......)"); strSql.Append(" values ("); strSql.Append("@RequestNum,@PatientName,@PatientSex,@PatientRecordNo,@SampleType,@SampleState......)"); MySqlParameter[] parameters = { new MySqlParameter("@RequestNum", MySqlDbType.VarChar,50), new MySqlParameter("@PatientName", MySqlDbType.VarChar,50), new MySqlParameter("@PatientSex", MySqlDbType.VarChar,50), new MySqlParameter("@PatientRecordNo", MySqlDbType.VarChar,50), new MySqlParameter("@SampleType", MySqlDbType.VarChar,50), new MySqlParameter("@SampleState", MySqlDbType.VarChar.......此处省略 parameters[0].Value = model.RequestNum.ToString(); parameters[1].Value = model.PatientName.ToString(); parameters[2].Value = model.PatientSex.ToString(); parameters[3].Value = model.PatientRecordNo.ToString(); parameters[4].Value = model.SampleType.ToString(); parameters[5].Value = model.SampleState.ToString();.......此处省略代码是用动软生成的工厂模式架构。 单步跟踪到foreach循环,cmdParms 里面的值是正确的,类型也是正确的。 单步跟踪到foreach循环,cmdParms 里面的值是正确的,类型也是正确的。MySqlParameter[] parameters = new MySqlParameter[]{ // todo.....}; c#WindowsApplication打包发布后差MDAC的问题 如何单击datagridview的一行时,得到当前行的值,显示在TEXTBOX控件中 VB的转学C# 求助,下拉菜单的一个奇怪的问题!!! ****求一个SQL语句的写法****正解马上结贴**** 读取XML文件的问题 对隐藏控件 截图 C#中如何从Graphics 得到hdc FlexWiki 没办法调试啊!!! 那位高手能指教指教吗?? 请问两个.net控件 c#求高手相助 wpf重载消息处理函数
{
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
cmd.Parameters.Add(parameter);
}
结果发现这个循环中的问题,改为以下后,正常
foreach (MySqlParameter parameter in cmdParms)
{
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
MySqlParameter pa = new MySqlParameter(parameter.ParameterName, parameter.MySqlDbType.ToString());
pa.Value = parameter.Value.ToString();
cmd.Parameters.Add(pa); }不知道为什么,请大家指教。
在执行 cmd.Parameters.Add(pa);前,必须先new 一个MySqlParameter才行,
否则执行int rows = cmd.ExecuteNonQuery();就报错 ,是怎么回事?
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into report(");
strSql.Append("RequestNum,PatientName,PatientSex,PatientRecordNo,SampleType,SampleState,.......)"); strSql.Append(" values (");
strSql.Append("@RequestNum,@PatientName,@PatientSex,@PatientRecordNo,@SampleType,@SampleState......)"); MySqlParameter[] parameters = {
new MySqlParameter("@RequestNum", MySqlDbType.VarChar,50),
new MySqlParameter("@PatientName", MySqlDbType.VarChar,50),
new MySqlParameter("@PatientSex", MySqlDbType.VarChar,50),
new MySqlParameter("@PatientRecordNo", MySqlDbType.VarChar,50),
new MySqlParameter("@SampleType", MySqlDbType.VarChar,50),
new MySqlParameter("@SampleState", MySqlDbType.VarChar
.......此处省略 parameters[0].Value = model.RequestNum.ToString();
parameters[1].Value = model.PatientName.ToString();
parameters[2].Value = model.PatientSex.ToString();
parameters[3].Value = model.PatientRecordNo.ToString();
parameters[4].Value = model.SampleType.ToString();
parameters[5].Value = model.SampleState.ToString();
.......此处省略代码是用动软生成的工厂模式架构。
MySqlParameter[] parameters = new MySqlParameter[]{
// todo.....
};