Access UPdate 标准表达式中数据类型不匹配
一直没机会用ASP.NET操作ACCESS数据库,今天一用就让我遇到一个很奇怪的问题
在UPdate操作时遇到一个"标准表达式中数据类型不匹配"错误~到现在我也没搞明是什么原因,添加,删除,查询都没问题,就只有在更新操作时会有问题,我尝试了一下将ID直接写到字符串中,不通过参数,这样就成功了
问题代码:
StringBuilder strSql = new StringBuilder();
strSql.Append("update RGP_AuthorityDir set ");
strSql.Append("AuthorityName=@AuthorityName,");
strSql.Append("AuthorityTag=@AuthorityTag,");
strSql.Append("AuthorityDescription=@AuthorityDescription,");
strSql.Append("AuthorityOrder=@AuthorityOrder");
strSql.Append(" where AuthorityID=@AuthorityID ");
OleDbParameter[] parameters = {
new OleDbParameter("@AuthorityID", OleDbType.Integer,11),
new OleDbParameter("@AuthorityName", OleDbType.VarWChar,30),
new OleDbParameter("@AuthorityTag", OleDbType.VarWChar,50),
new OleDbParameter("@AuthorityDescription", OleDbType.VarWChar,50),
new OleDbParameter("@AuthorityOrder", OleDbType.Integer,11)};
parameters[0].Value = model.AuthorityID;
parameters[1].Value = model.AuthorityName;
parameters[2].Value = model.AuthorityTag;
parameters[3].Value = model.AuthorityDescription;
parameters[4].Value = model.AuthorityOrder;
解决办法
StringBuilder strSql = new StringBuilder();
strSql.Append("update RGP_AuthorityDir set ");
strSql.Append("AuthorityName=@AuthorityName,");
strSql.Append("AuthorityTag=@AuthorityTag,");
strSql.Append("AuthorityDescription=@AuthorityDescription,");
strSql.Append("AuthorityOrder=@AuthorityOrder");
strSql.Append(" where AuthorityID=" + model.AuthorityID);
OleDbParameter[] parameters = {
new OleDbParameter("@AuthorityName", OleDbType.VarWChar,30),
new OleDbParameter("@AuthorityTag", OleDbType.VarWChar,50),
new OleDbParameter("@AuthorityDescription", OleDbType.VarWChar,50),
new OleDbParameter("@AuthorityOrder", OleDbType.Integer,11)};
parameters[0].Value = model.AuthorityName;
parameters[1].Value = model.AuthorityTag;
parameters[2].Value = model.AuthorityDescription;
parameters[3].Value = model.AuthorityOrder;
作者:Neo.Yan
出处:http://www.cnblogs.com/Nick4/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎大家访问我的网站-RedGlove.NET。