Access的参数查询问题?

keminlau 2004-11-23 11:29:22
我用参数更新一个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 了,为什么仍报错啊?
...全文
254 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hreoghost 2005-05-09
  • 打赏
  • 举报
回复
mark
keminlau 2004-12-06
  • 打赏
  • 举报
回复
散分吧~~~
keminlau 2004-11-28
  • 打赏
  • 举报
回复
顶呀~~!
keminlau 2004-11-26
  • 打赏
  • 举报
回复
帮我看我另一问题吧把分分过去:
http://community.csdn.net/Expert/TopicView.asp?id=3571439
谢谢
abm1971 2004-11-26
  • 打赏
  • 举报
回复
string sSQL = "UPDATE [classmates] "+
"SET " +
"[Name] = ?, "+
"[Sex] = ?, " +
"[IsAgree] = ?," +
"[IsMate] = ?," +
"[Address] = ?," +
"[LastLogin] = ?," +
"[LoginTimes] = ?, " +
"[IsOnline] = ? " +
" WHERE ([ID] = ?)";
OleDbCommand cmd = new OleDbCommand(sSQL,conn);
cmd.Parameters[0].value=12;
cmd.Parameters[0].value="老孙";
cmd.Parameters[4].value="address111111";
cmd.Parameters[1].value= false;
cmd.Parameters[2].value= false;
cmd.Parameters[3].value= false;
cmd.Parameters[5].value= false;
cmd.Parameters[6].value= 200;
cmd.Parameters[7].value= DateTime.Now;
cnHelp.Open();
cmd.ExecuteNonQuery();
keminlau 2004-11-26
  • 打赏
  • 举报
回复
再顶呀~~
yuna110 2004-11-25
  • 打赏
  • 举报
回复
access数据库是按顺序位置来处理
SQL 看名字

SQL 一般用@
access 用 ?

keminlau 2004-11-25
  • 打赏
  • 举报
回复
人多了,顶一下看~~
keminlau 2004-11-25
  • 打赏
  • 举报
回复
哎,这问题自己搞定了,access数据库原来是按顺序位置来处理,不看名字,和sql server不一样,真野蛮呀!!这50分给谁啊,有谁看了得益后,留个言,版主给我加分吧,哈哈哈~~~,顶呀
帮我看我另一问题吧把分分过去:
http://community.csdn.net/Expert/TopicView.asp?id=3571439
cnblackhawk 2004-11-25
  • 打赏
  • 举报
回复
up
keminlau 2004-11-23
  • 打赏
  • 举报
回复
谢谢suntonycomm(小老鼠)关注,我要用参数来查询
suntonycomm 2004-11-23
  • 打赏
  • 举报
回复
string sql=string.Empty;
sql = "update Members set M_Name='"+txtName.Text+"',M_Code='"+txtCode.Text+"',M_Password='"+txtPwd.Text+"',M_Email='"+txtMail.Text+"',M_Sig='"+txtSig.Text+"',M_Level="+txtLevel.Text+"
where Member_ID="+Request["ID"];
//Response.Write(sql);
cmd.CommandText = sql;
cnHelp.Open();
cmd.ExecuteNonQuery();
cnHelp.Close();


------------------------------
贴的文字太多了,你看看我的例子吧。
keminlau 2004-11-23
  • 打赏
  • 举报
回复
顶呀~~
keminlau 2004-11-23
  • 打赏
  • 举报
回复
有没有人遇过这样的情况啊?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧