又是一个关于access数据类型不匹配的问题
代码如下:
public void InsertWord(Messagebook mBook)
{
OleDbParameter[] op ={new OleDbParameter( "@gname ",mBook.GName),
new OleDbParameter( "@gphone ",mBook.GPhone),
new OleDbParameter( "@address ",mBook.GAddress),
new OleDbParameter( "@gmail ",mBook.GEmail),
new OleDbParameter( "@gqq ",mBook.GQq),
new OleDbParameter( "@gtitle ",mBook.GTitle),
new OleDbParameter( "@gcontent ",mBook.GContent),
new OleDbParameter( "@gdate ",mBook.GDate),
new OleDbParameter( "@gshow ",mBook.Gshow),
new OleDbParameter( "@gip ",mBook.GIp)
};
DB.ExecuteNonQuery( "insert into guestbook(gName,gPhone,gaddress,geMail,gQq,gTitle,gContent,gDate,gShow,gIp) values(@gname,@gphone,@gaddress,@gmail,@gqq,@gtitle,@gcontent,@gdate,@gshow,@gip) ", op);
}
代码二
public int ExecuteNonQuery(string sqlString,OleDbParameter[] op)
{
int ret = 0;
Com.CommandText = sqlString;
foreach (OleDbParameter p in op)
{
Com.Parameters.Add(p);
}
try
{
ret = Com.ExecuteNonQuery();
Dispose();
}
catch(Exception ee)
{
throw new Exception( "sql: " + sqlString + " <br/> " + ee.Message.ToString());
}
return ret;
}
错误提示:
sql:insert into guestbook(gName,gPhone,gaddress,geMail,gQq,gTitle,gContent,gDate,gShow,gIp) values(@gname,@gphone,@gaddress,@gmail,@gqq,@gtitle,@gcontent,@gdate,@gshow,@gip) <br/> 标准表达式中数据类型不匹配。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Exception: sql:insert into guestbook(gName,gPhone,gaddress,geMail,gQq,gTitle,gContent,gDate,gShow,gIp) values(@gname,@gphone,@gaddress,@gmail,@gqq,@gtitle,@gcontent,@gdate,@gshow,@gip) <br/> 标准表达式中数据类型不匹配。
源错误:
行 77: catch(Exception ee)
行 78: {
行 79: throw new Exception( "sql: " + sqlString + " <br/> " + ee.Message.ToString());
行 80: }
行 81: return ret;
源文件: e:\site\bedding\App_Code\DbObject.cs 行: 79
通过设置断点测试,mbook对象中的属性值全部正确,就是查不出问题出在哪里?
[解决办法]
up
[解决办法]
一般都是DB中的数据类型部队。你仔细看一下。