标准表达式中数据类型不匹配???怎么回事?(100分)

  • 主题发起人 主题发起人 laker20
  • 开始时间 开始时间
L

laker20

Unregistered / Unconfirmed
GUEST, unregistred user!
if(Request.Form["TextBox5"]!="")
{
string strCnn=@"Provider=Microsoft.Jet.OleDb.4.0;";
strCnn+=@"Data Source=c:/testdb.mdb";
string strCmd="delete from table1 where id='"+Request.Form["TextBox5"]+"'";
OleDbConnection objCnn=new OleDbConnection(strCnn);
OleDbCommand objCmd2=new OleDbCommand(strCmd,objCnn);
//objCmd2.CommandTimeout = 20;
//objCmd2.CommandText=strCmd;
//objCmd2.Connection=objCnn;
objCnn.Open();
objCmd2.ExecuteNonQuery();
objCnn.Close();
}
这段程序是要将从TextBox5中获得的id对应的记录从数据库中删除。每次执行到objCmd2.ExecuteNonQuery();的时候就提示“异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配”,怎么处理?
我刚接触asp.net+c#不久,很多东西不知道,请多指教。
 
我发现如果是
string strCmd="insert into............"
就可以执行,一换成"delete from..........."就出错了。是不是和执行的语句有关呀?
 
string strCmd="delete from table1 where id='"+Request.Form["TextBox5"]+"'";
ID应该是数字类型的吧,把 ' 去掉试试
string strCmd="delete from table1 where id="+Request.Form["TextBox5"];
 
楼上的大哥,id是access自动分配的,是数字,但是用你的方法系统会提示'id='操作符丢失。[:(]
 
我试着将request.form["TextBox5"]直接换成数字就可以执行了,现在的问题是如何正确的写这条语句。
 
我对asp.net+c#不是很熟,不过你所说的问题
//但是用你的方法系统会提示'id='操作符丢失
是因为Request.Form["TextBox5"]的值是空的,注意提交的表单中有TextBox5吗?提交方法是Post吗?
 
哈哈,pihome大哥真是厉害!我检查了提交方法,发现确实是我用错textbox控件了(一种是html的,不带提交功能;另一种是asp的,默认有提交功能),在用你的写法就ok了!谢谢你!
 
后退
顶部