SqlParameter 的问题 本帖最后由 phonlee 于 2009-07-11 22:01:52 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SqlParameter[] paras ={ new SqlParameter("@Id",SqlDbType.Int), new SqlParameter("@Name",SqlDbType.NVarChar,200) }; paras[0].Value = Id; paras[1].Value = NAME;看看数据库操作类中存储过程中使用方法 string cmdText = "INSERT INTO Grinddata " + "(RollNo,...," + "...,Maxcrack,MaxcrackLocation,Maxcrackangle," + "Maxbruise,MaxbruiseLocation,Maxbruiseangle," + ...)" + "values (@RollNo,...," + "...,@Maxcrack,@MaxcrackLocation,@Maxcrackangle," + "@Maxbruise,@MaxbruiseLocation,@Maxbruiseangle,"+ "...)";-------------------- 我的sql语句在 C# 代码中,不是存储过程 SqlParameter paraMaxcrackLocation = new SqlParameter("@MaxcrackLocation", SqlDbType.VarChar, 10); paraMaxcrackLocation.Value = DBNull.Value; int iTest = 0; if (m_GrinderMonitor1.m_drDetailCrackData != null) { iTest = Convert.ToInt32(m_GrinderMonitor1.m_drDetailCrackData["zby"].ToString()); paraMaxcrackLocation.Value = iTest; //.ToString();//m_GrinderMonitor1.m_drDetailCrackData["zby"]; //2个方法都尝试了.还是不正确 } 是否参数和数据类型不匹配? iTest是int啊.参数是SqlDbType.VarChar另外 如果是在循环中是否调用cmd.Parameters.Clear()值 debug不对,确定 cmdText里参数的顺序匹配? SqlParameter paraMaxcrackLocation = new SqlParameter("@MaxcrackLocation", SqlDbType.VarChar, 10); paraMaxcrackLocation.Value = DBNull.Value; int iTest = 0; if (m_GrinderMonitor1.m_drDetailCrackData != null) { iTest = Convert.ToInt32(m_GrinderMonitor1.m_drDetailCrackData["zby"].ToString()); paraMaxcrackLocation.Value = iTest; //.ToString();//m_GrinderMonitor1.m_drDetailCrackData["zby"]; //2个方法都尝试了.还是不正确 } cmd.Parameters.Add(paraMaxcrackLocation); 你的参数类型是Varchar(10),但是你赋的值是int(int iTest ),这样可能会出现一些问题。另外,建议你输出iTest和m_GrinderMonitor1.m_drDetailCrackData的值出来看看,他们很可能为空值。 感谢各位的回复! 我使用了format语句来生成sql 这样方便调试. C#开发的ftp服务器问题 c# 未将对象引用设置到对象的实例的问题 爱心加油站 小白求助数据类型异常 帮忙看一下啊! 下载了个c#的qq仿真程序,调试出现问题 求个C# 判断输入项是否是金额的函数 求实例或者相关文章 关于收发邮件的 C# 数组转为IP地址 读Excel的问题 用户提交时,背景半透明遮盖 显示动态图片 求关于英文单词拼写检查的方法
new SqlParameter("@Id",SqlDbType.Int),
new SqlParameter("@Name",SqlDbType.NVarChar,200)
};
paras[0].Value = Id;
paras[1].Value = NAME;
看看数据库操作类中存储过程中使用方法
"...,Maxcrack,MaxcrackLocation,Maxcrackangle," +
"Maxbruise,MaxbruiseLocation,Maxbruiseangle," +
...)" + "values (@RollNo,...," +
"...,@Maxcrack,@MaxcrackLocation,@Maxcrackangle," +
"@Maxbruise,@MaxbruiseLocation,@Maxbruiseangle,"+ "...)";--------------------
我的sql语句在 C# 代码中,不是存储过程
paraMaxcrackLocation.Value = DBNull.Value;
int iTest = 0;
if (m_GrinderMonitor1.m_drDetailCrackData != null)
{
iTest = Convert.ToInt32(m_GrinderMonitor1.m_drDetailCrackData["zby"].ToString());
paraMaxcrackLocation.Value = iTest;
//.ToString();//m_GrinderMonitor1.m_drDetailCrackData["zby"];
//2个方法都尝试了.还是不正确
} 是否参数和数据类型不匹配? iTest是int啊.参数是SqlDbType.VarChar
另外 如果是在循环中是否调用cmd.Parameters.Clear()
值 debug不对,确定 cmdText里参数的顺序匹配?
SqlParameter paraMaxcrackLocation = new SqlParameter("@MaxcrackLocation", SqlDbType.VarChar, 10);
paraMaxcrackLocation.Value = DBNull.Value;
int iTest = 0;
if (m_GrinderMonitor1.m_drDetailCrackData != null)
{
iTest = Convert.ToInt32(m_GrinderMonitor1.m_drDetailCrackData["zby"].ToString());
paraMaxcrackLocation.Value = iTest;
//.ToString();//m_GrinderMonitor1.m_drDetailCrackData["zby"];
//2个方法都尝试了.还是不正确
}
cmd.Parameters.Add(paraMaxcrackLocation); 你的参数类型是Varchar(10),但是你赋的值是int(int iTest ),这样可能会出现一些问题。
另外,建议你输出iTest和m_GrinderMonitor1.m_drDetailCrackData的值出来看看,他们很可能为空值。
我使用了format语句来生成sql
这样方便调试.