关于C#提交按钮报错

来源:百度知道 编辑:UC知道 时间:2024/05/14 02:44:28
private void Btu1_Click(object sender, System.EventArgs e)
{
String SQL,ConnStr;
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source="+Server.MapPath("db.mdb");
SQL = "Insert Into Content(Name,Sex,Email,QQ,Content,IP,AddTime) Values('"+Text1.Text+"','"+RB1.Text+RB2.Text+"','"+Text2.Text+"','"+Text3.Text+"','"+Text4.Text+"','"+Request.UserHostAddress+"','"+DateTime.Now+"')";
OleDbConnection Conn= new OleDbConnection(ConnStr);
Conn.Open();
OleDbCommand Cmd=new OleDbCommand(SQL, Conn);
Cmd.ExecuteNonQuery();

当我按提交键的时候显示:标准表达式中数据类型不匹配。
源错误: 行 77: Cmd.ExecuteNonQuery();
问下我错在哪里?该怎么写

ACCESS里面是用#来做日期/时间的分隔符的,所以如果AddTime字段是日期/时间类型的话,可以用如下
SQL = "Insert Into Content(Name,Sex,Email,QQ,Content,IP,AddTime) Values('"+Text1.Text+"','"+RB1.Text+RB2.Text+"','"+Text2.Text+"','"+Text3.Text+"','"+Text4.Text+"','"+Request.UserHostAddress+"',#"+DateTime.Now+"#)";
再就是检查你各字段的类型,如果不是字符类型的话,不能再两边加 '

源错误: 行 77: Cmd.ExecuteNonQuery();

这个错误是由于你的sql语句错误引起的~~
检查sql语句~

这样做:
在Cmd.ExecuteNonQuery(); 上面添加断点,查看SQL变量的值,并用查询分析器执行一下,看看对不对~?

这个提示(标准表达式中数据类型不匹配)已经很明显了。
是因为你存储过程中定义的变量的类型与你的表中所对应的类型不一致。