UPDATE过程中 标准表达式中数据类型不匹配
AboutID = Request.QueryString["ID"].ToString();
Socut.Data.ExecuteNonQuery("UPDATE NwebCn_About set AboutName='" + AboutName.Text + "' where ID='" + AboutID + "'");
不知道为什么总是提示“标准表达式中数据类型不匹配”,在网上查询了很久都没有找到答案。我不用Socut这个组件,直接用OleDbCommand myCommand = new OleDbCommand(sqlstr,conn); 同样出现这样的错误,所以我肯定不是Socut这个组件的问题。不知道大家遇到这个问题,是怎么解决的。网上有很多帖子都说ACCESS就存在这样的问题,SQL就不会。这是为什么呢?
AboutID = Request.QueryString["ID"].ToString();
Socut.Data.ExecuteNonQuery("UPDATE NwebCn_About set AboutName='" + AboutName.Text + "' where ID='" + AboutID + "'");
不知道为什么总是提示“标准表达式中数据类型不匹配”,在网上查询了很久都没有找到答案。我不用Socut这个组件,直接用OleDbCommand myCommand = new OleDbCommand(sqlstr,conn); 同样出现这样的错误,所以我肯定不是Socut这个组件的问题。不知道大家遇到这个问题,是怎么解决的。网上有很多帖子都说ACCESS就存在这样的问题,SQL就不会。这是为什么呢?
数据型 不要和引号连在一起
直接用“ID=” & aboutID
就可以了。
int AboutID=Convert.toint32(Request.QueryString["ID"].ToString());
代码要写的健壮些.
非要用这种写法吗?换个方式一样的.
SqlCommand comm = new SqlCommand("UPDATE NwebCn_About set AboutName=@name where ID=@aboutid");
comm.Parameters.add("@name",SqlDbType.varchar,50).value = AboutName.Text;
comm.Parameters.add("@aboutid",SqlDbType.int).value = AboutID;
int ID = Convert.ToInt16(AboutID);
conn = db.GetConn();
OleDbCommand comm = new OleDbCommand("UPDATE NwebCn_About set AboutName=@name where ID=@aboutid", conn);
comm.Parameters.Add("@name",OleDbType.VarChar,50).Value=AboutName.Text;
comm.Parameters.Add("@aboutid",OleDbType.Integer).Value=ID;
comm.ExecuteNonQuery();提示:输入字符串的格式不正确对了,这个ID是主键 自动编号的。ACCESS数据库。
conn = db.GetConn();
OleDbCommand comm = new OleDbCommand("UPDATE NwebCn_About set AboutName=@name where ID=@aboutid", conn);
comm.Parameters.Add("@name",DbType.string).Value=AboutName.Text;
comm.Parameters.Add("@aboutid",DbType.Integer).Value=ID;
comm.ExecuteNonQuery();
或者再把‘@’改为‘:’(不知道access参数的标记是什么)
{ AboutID = Request.QueryString["ID"].ToString();
}所以不能回传了。所以在按钮事件里面就不能调用aboutid了。所以就出问题了。自己真是笨死了。