下面的代码是让用户在文本框输入的值提交到数据库. 我查了相关资料,有很多地方都介绍了这种方法://oleConn 在前面已经创建好了,没有问题.
1.oleConn.Open();
2.string cmdStr = "Insert into stuInfo values(" + "'" + txtName.Text + "','" + txtAge.Text + "','" + txtDegree.Text + "','" + txtTel.Text + "')";
3.oleCmd = new OleDbCommand(cmdStr, oleConn);
4.oleCmd.ExecuteNonQuery();
5.oleConn.Close();这样五步. 可我这样操作是不成功的.不知是不是哪里出了问题.但我这样操作却又可以:oleConn.Open();
string cmdStr = "Insert into stuInfo values(" + "'" + txtName.Text + "','" + txtAge.Text + "','" + txtDegree.Text + "','" + txtTel.Text + "')";
oleCmd = new OleDbCommand(cmdStr, oleConn);//这是添加的4行.我想问问这4行起什么作用,为什么没有它就不行?
oleCmd.Parameters.Add("@name", OleDbType.Char, 10);
oleCmd.Parameters.Add("@age", OleDbType.Numeric, 50);
oleCmd.Parameters.Add("@degree", OleDbType.Char, 50);
oleCmd.Parameters.Add("@tel", OleDbType.Char, 20);oleCmd.ExecuteNonQuery();
oleConn.Close();

解决方案 »

  1.   

    debug一下你就能看到了
    你第一种方法生成的string类型的sql语句,如果直接拿到数据库的查询分析器中肯定执行不通过里面有错误的地方
    使用parameters的方法,就不会出现这种问题 了使用这个还可以防止sql注入的问题
      

  2.   

    单调以下,看看string cmdStr = "Insert into stuInfo values(" + "'" + txtName.Text + "','" + txtAge.Text + "','" + txtDegree.Text + "','" + txtTel.Text + "')";
    在程序中的值到底是什么?