access中带参数sql语句问题~~标准表达式中数据类型不匹配

在Access中出错的代码:

string insertString = "insert into [tb_contactus] ([Name],[Mail],[Contact],[Description],[Date]) values(@Name,@Mail,@Contact,@Description,@Date)";
        OleDbCommand cmd = new OleDbCommand(insertString,con);
        cmd.Parameters.Add(new OleDbParameter("@Name", OleDbType.Char));
        cmd.Parameters["@Name"].Value = a;
        cmd.Parameters.Add(new OleDbParameter("@Mail", OleDbType.Char));
        cmd.Parameters["@Mail"].Value = b;
        cmd.Parameters.Add(new OleDbParameter("@Contact", OleDbType.Char));
        cmd.Parameters["@Contact"].Value = c;
        cmd.Parameters.Add(new OleDbParameter("@Description", OleDbType.Char));
        cmd.Parameters["@Description"].Value = d;
        cmd.Parameters.Add(new OleDbParameter("@Date", OleDbType.DBTimeStamp));
        cmd.Parameters["@Date"].Value = System.DateTime.Now;
        cmd.ExecuteScalar();
        cmd.Connection.Close();
        return cmd;

每次到cmd.ExecuteScalar()时就报错:标准表达式中数据类型不匹配

后来改成:

string insertString = "insert into [tb_contactus] ([Name],[Mail],[Contact],[Description],[Date]) values(@Name,@Mail,@Contact,@Description,now())";
        OleDbCommand cmd = new OleDbCommand(insertString,con);
        cmd.Parameters.Add(new OleDbParameter("@Name", OleDbType.Char));
        cmd.Parameters["@Name"].Value = a;
        cmd.Parameters.Add(new OleDbParameter("@Mail", OleDbType.Char));
        cmd.Parameters["@Mail"].Value = b;
        cmd.Parameters.Add(new OleDbParameter("@Contact", OleDbType.Char));
        cmd.Parameters["@Contact"].Value = c;
        cmd.Parameters.Add(new OleDbParameter("@Description", OleDbType.Char));
        cmd.Parameters["@Description"].Value = d;
        cmd.ExecuteScalar();
        cmd.Connection.Close();
        return cmd;

就没错了。

具体原因还不是很清楚,哪位明白的能指点一下吗?谢谢!!!

转载于:https://www.cnblogs.com/zzyangzhou/archive/2008/07/29/1256003.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值