OleDbCommand执行UPDATE语句,怎么使用参数?不使用DataAdapter,直接ExecuteNonQuery()可以吗?

qpgsd 2006-09-30 04:38:14
OleDbCommand执行UPDATE语句,怎么使用参数?不使用DataAdapter,直接ExecuteNonQuery()可以吗?

谢谢!

问题一:
string updateSQL = "UPDATE tablename SET p1 = ?, p2 = ? Where p3 = ?";
OleDbCommand updateCMD = new OleDbCommand(updateSQL, this.Conn);
//这里该怎么搞?? 放什么语句?
int temp = updateCMD.ExecuteNonQuery()

问题二:
string updateSQL = "UPDATE tablename SET p1 = @p1, p2 = @p2 Where p3 = @p3";
OleDbCommand updateCMD = new OleDbCommand(updateSQL, this.Conn);
//这里该怎么搞?? 放什么语句?
int temp = updateCMD.ExecuteNonQuery()
...全文
538 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wapit 2006-12-06
  • 打赏
  • 举报
回复
MARK
qpgsd 2006-10-03
  • 打赏
  • 举报
回复
如果参数值为空怎么处理?

提示出错:参数xxx没有默认值...
wwwxyzlnet 2006-10-01
  • 打赏
  • 举报
回复
人生就是不停的mark
Csharp110 2006-10-01
  • 打赏
  • 举报
回复
小第学习中,我帮你顶
wwwxyzlnet 2006-09-30
  • 打赏
  • 举报
回复
mark
don't stop
huazi4995 2006-09-30
  • 打赏
  • 举报
回复
string updateSQL = "UPDATE tablename SET p1 ='"+textbox1.text+"',p2 ='"+textbox2.text+"' Where p3 = '"+textbox3.text+"'";
johnzen 2006-09-30
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//SqlConnection conn=new SqlConnection("");
string strconn="uid=sa;pwd=123;database=XILA;server=(local)";
//string strSQL="";

SqlParameter[] sp=new SqlParameter[2] ;
sp[0]=new SqlParameter ("@intID",2);
sp[1]=new SqlParameter ("@strPoster","这是参数:xunxu.com");
DataSet ds=SqlHelper.ExecuteDataset (strconn,CommandType.StoredProcedure,"XILA_BBSList",sp);
DataGrid1.DataSource =ds;
DataGrid1.DataBind ();
//DataSet ds=SqlHelper.ExecuteDataset ();
string str="Socut";
char cha=str[2];
Response.Write (cha.ToString ());
}
xingyaohua 2006-09-30
  • 打赏
  • 举报
回复
up
avisnet 2006-09-30
  • 打赏
  • 举报
回复
string updateSQL = "UPDATE tablename SET p1 = ?, p2 = ? Where p3 = ?";
OleDbCommand updateCMD = new OleDbCommand(updateSQL, this.Conn);
updateCMD.CommandType= CommandType.StoredProcedure
string updateSQL = "UPDATE tablename SET p1 = ?, p2 = ? Where p3 = ?";
OleDbCommand updateCMD = new OleDbCommand(updateSQL, this.Conn);
updateCMD.Parameters.Add(new OleDbParameter("", OleDbType.VarChar, 4)).Value = "p1";
updateCMD.Parameters.Add(new OleDbParameter("", OleDbType.VarChar, 4)).Value = "p2";
updateCMD.Parameters.Add(new OleDbParameter("", OleDbType.VarChar, 4)).Value = "p3";
int temp = updateCMD.ExecuteNonQuery();
int temp = updateCMD.ExecuteNonQuery()


问题一:
string updateSQL = "UPDATE tablename SET p1 = ?, p2 = ? Where p3 = ?";
OleDbCommand updateCMD = new OleDbCommand(updateSQL, this.Conn);
//这里该怎么搞?? 放什么语句?
int temp = updateCMD.ExecuteNonQuery()

问题二:
string updateSQL = "UPDATE tablename SET p1 = @p1, p2 = @p2 Where p3 = @p3";
OleDbCommand updateCMD = new OleDbCommand(updateSQL, this.Conn);
//这里该怎么搞?? 放什么语句?
int temp = updateCMD.ExecuteNonQuery()
---
对Access来说,这两个没有区别,Access可是按参数出现在顺序区分参数,而不是参数名称
对SQL Server来说,只能用问题二中的方法,是用参数名来区分参数的
myminimouse 2006-09-30
  • 打赏
  • 举报
回复
第一个connection打开就可以了,不用别的
第二个new几个参数,add进去就可以了
qpgsd 2006-09-30
  • 打赏
  • 举报
回复
听说用参数可以不用过滤非法字符串啊

是ACCESS数据库
qpgsd 2006-09-30
  • 打赏
  • 举报
回复
OleDbParameterCollection 仅接受非空的 OleDbParameter 类型对象,不接受 OleDbParameter[] 对象。
xiaozaoqiu 2006-09-30
  • 打赏
  • 举报
回复
用sqlcommand,直接执行executenonequery()
csrwgs 2006-09-30
  • 打赏
  • 举报
回复
(1) 如:zhangkunls(小憨) ( 所说的

还有一种情况就是使用 StoredProc

cmd.CommandType

System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "ProcedureName";
cmd.Parameters["@para1"] = para1_str;

int ret_val = cmd.ExecuteNonQuery();
// 对 ret_val 进行判断

微技术 2006-09-30
  • 打赏
  • 举报
回复
问题一:
string updateSQL = "UPDATE tablename SET p1 = 'dfd', p2 = 'dfs' Where p3 =8 ";//如果用变量的话,用+号连接字符串即可
OleDbCommand updateCMD = new OleDbCommand(updateSQL, this.Conn);
//这里什么也不用写,不过不要忘了Conn.open();
int temp = updateCMD.ExecuteNonQuery();
微技术 2006-09-30
  • 打赏
  • 举报
回复
string updateSQL = "UPDATE tablename SET p1 = @p1, p2 = @p2 Where p3 = @p3";
OleDbCommand updateCMD = new OleDbCommand(updateSQL, this.Conn);
OleDbParameter[]para=new OleDbParameter[]
{
new OleDbParameter("@p1",OleDbType.VarChar,50),
new OleDbParameter("@p2",OleDbType.VarChar,50),
new OleDbParameter("@p3",OleDbType.BigInt,50)
};
para[0].value = "234";
para[1].value = "wfwef";
para[2].value = 2;//LZ用的是access数据库吧,需要按表中的次序加参数,where子句的参数放在最后
updateCMD.Parameters.Add(param);
int temp = updateCMD.ExecuteNonQuery();
cancerser 2006-09-30
  • 打赏
  • 举报
回复
就这么写,如果是sql数据库,建议使用SqlDbCommand
qpgsd 2006-09-30
  • 打赏
  • 举报
回复
表中
p1,p2为字符串(备注类型)
p3为整型

62,243

社区成员

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

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

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

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