我用 SystemException 抓到一个异常,信息为:
“标准表达式中的数据类型不匹配”。用不用 ToString() 都是一样的,所以我估计是 OleDbType.LongVarChar,64000 这里不对,
可是又不知道应该用什么?
“标准表达式中的数据类型不匹配”。用不用 ToString() 都是一样的,所以我估计是 OleDbType.LongVarChar,64000 这里不对,
可是又不知道应该用什么?
解决方案 »
- HttpWebRequest的GetResponse()超时问题求解决
- C#如何模拟登陆?
- richTextBox怎么插入图片!
- Random 求算法.
- 关于picturebox的位置问题
- MSMQ C#.net 接收 从vb6.0发送的 MSMQ 问题,大人请进!!!
- 怎样设置才能回到从前
- 如何改变系统的颜色?
- 在线等待:请问 ASP:Button 服务器组件怎么响应提示框。例:
- 一个关于SQL语句绑定的问题!我没有分了!但这个问题我很想解决!谢谢大家啊!
- 如何得到Active Directory 里System._ComObject的值
- 请问什么是“水晶报表”啊?我搞ASP.NET一年多了还不清楚水晶报表是指什么,谢谢!
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\\poordb.mdb;");
OleDbCommand cmd = new OleDbCommand("insert into ttt (id,memory) values (2, ?)",conn);
string str = "hello world";
cmd.Parameters.Add("@memory", OleDbType.Variant, str.Length, "memory").Value = str;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\\poordb.mdb;");
cmd = new OleDbCommand("select * from ttt", conn);
conn.Open();
OleDbDataReader read = cmd.ExecuteReader();
while(read.Read())
{
string strMemo = read["memory"].ToString();
string strID = read["id"].ToString();
}
read.Close();
conn.Close();
OleDbParameter prmRefno = new OleDbParameter("@refno",OleDbType.Variant,
strRefno.Length,ParameterDirection.Input,
true,0,0,null,DataRowVersion.Current,strRefno.ToString());
cmdInsert.Parameters.Add(prmRefno);
一样的报错!
如果写在其他任何位置,都会出现 “标准表达式中的数据类型不匹配”这个错误!这是我反复尝试无意发现的,我不知道为什么一定要写在第一个参数? 谁能给个解释?下面是我调试成功的代码片断:// 这段代码的功能是同时将图片和文本字段保存到 access 数据库。// 构成文件名
imagePath = folderPath + "\\" + dr["sdno"].ToString() + ".jpg";// 用变量保存原数据库字段的值
strSdno = dr["sdno"].ToString();
strDscp = dr["dscp"].ToString();
strPartno = dr["partno"].ToString();
strRefno = dr["refno"].ToString();
strApplication = dr["application"].ToString();OleDbCommand cmdInsert;// 若相应的图片文件存在,则连同此图片存入新的数据库
if(File.Exists(imagePath))
{
cmdInsert = new OleDbCommand("insert into product "
+ "(photo,sdno,dscp,partno,application,refno) "
+ "values (@photo,@sdno,@dscp,@partno,@application,@refno)",conn2); // 读取图片信息
FileStream fs = new FileStream(imagePath,FileMode.Open,FileAccess.Read);
byte[] bytData = new byte[fs.Length - 1];
fs.Read(bytData,0,bytData.Length);
fs.Close(); // photo
OleDbParameter prmPhoto = new OleDbParameter("@photo",OleDbType.LongVarBinary,
bytData.Length,ParameterDirection.Input,true,
0,0,null,DataRowVersion.Current,bytData);
cmdInsert.Parameters.Add(prmPhoto);
}
else
{
cmdInsert = new OleDbCommand("insert into product "
+ "(sdno,dscp,partno,application,refno) "
+ "values (@sdno,@dscp,@partno,@application,@refno)",conn2);
}// sdno
cmdInsert.Parameters.Add("@sdno", OleDbType.VarChar,
24, "sdno").Value = strSdno.ToString();
// dscp
cmdInsert.Parameters.Add("@dscp", OleDbType.VarChar,
36, "dscp").Value = strDscp.ToString();
// partno
cmdInsert.Parameters.Add("@partno", OleDbType.VarChar,
24, "partno").Value = strPartno.ToString();
// refno "备注" 型,长度 64000
cmdInsert.Parameters.Add("@refno", OleDbType.LongVarChar,
strRefno.Length, "refno").Value = strRefno.ToString();
// application "备注" 型,长度 64000
cmdInsert.Parameters.Add("@application", OleDbType.LongVarChar,
strRefno.Length, "application").Value = strApplication.ToString();// 执行插入命令
cmdInsert.ExecuteNonQuery();
http://expert.csdn.net/Expert/topic/2139/2139532.xml?temp=.9971735小弟原先一直在 asp 版混,现决定长期进驻 c# 版,还请各位大哥多多指教!