Access的参数查询问题?

keminlau keminlau 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用参数更新一个access数据库里的记录,不报错,但是更新没有成功:看下面代码
using System;
using System.Data;
using System.Data.OleDb;
using System.Collections;

public class MyClass
{
public static void Main()
{
OleDbConnection conn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; data source=C:\Inetpub\wwwroot\fiveXdotNet_Oledb\db\fivexdb.mdb");
conn.Open();

string sSQL = "UPDATE [classmates] "+
"SET " +
"[Name] = @vchName, "+
"[Sex] = @bSex, " +
"[IsAgree] = @bIsAgree," +
"[IsMate] = @bIsMate," +
"[Address] = @vchAddress," +
"[LastLogin] = @dtLastLogin," +
"[LoginTimes] = @iLoginTimes, " +
"[IsOnline] = @bIsOnline " +
" WHERE ([ID] = @iID)";

//Console.WriteLine(sSQL);
//Console.Read();
OleDbParameter[] paParams = {
MyClass.GetParam("@iID", OleDbType.Integer,8, 12),
MyClass.GetParam("@vchName", OleDbType.VarWChar, 50, "老孙"),
MyClass.GetParam("@vchAddress", OleDbType.VarWChar, 100, "address111111"),
MyClass.GetParam("@bSex", OleDbType.Boolean,4, false),
MyClass.GetParam("@bIsMate", OleDbType.Boolean,4, false),
MyClass.GetParam("@bIsAgree", OleDbType.Boolean,4, false),
MyClass.GetParam("@bIsOnline", OleDbType.Boolean,4, false),
MyClass.GetParam("@iLoginTimes", OleDbType.Integer, 4, 200),
MyClass.GetParam("@dtLastLogin",OleDbType.Date,4, DateTime.Now)
};

OleDbCommand cmd = new OleDbCommand(sSQL,conn);

foreach (OleDbParameter parameter in paParams)
cmd.Parameters.Add(parameter);

try{
cmd.ExecuteNonQuery();
}
catch(Exception e){
Console.WriteLine(e.Message);
}
finally{
//cmd.Close();
conn.Close();

}
}

public static OleDbParameter GetParam(string sName,OleDbType DbType, int iSize, object oValue){
OleDbParameter para = new OleDbParameter(sName,DbType,iSize);
para.Value = oValue;
return para;
}
}

然后改用只更新一个name字段,用了两个参数@name和@id后,报数据类型不匹配,我已经按照
http://support.microsoft.com/default.aspx?scid=kb;en-us;320435
这个进行数据类型mapping 了,为什么仍报错啊?
...全文

相关推荐

评论 14
收藏 已收藏
分享
返回顶部
keminlau
.NET社区 62,272 成员 668,968 内容