OleDbConnection connection = new OleDbConnection();
            connection.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            command.CommandType = CommandType.Text;
在前面的连接数据库都没问题,下面我是想插入一条纪录,但一直会有这个错误,不知为什么,希望高手帮帮忙...
            string sqlstr = "insert into student values(@num,@name)";
            command.CommandText = sqlstr;
            command.Parameters.Add("@num", OleDbType.Char);
            command.Parameters.Add("@name", OleDbType.Char);
            command.Parameters["@num"].Value = "1111";
            command.Parameters["@name"].Value = textBox1.Text;
            command.ExecuteNonQuery();
            connection.Close();
请大家看看上面的代码,到底错哪了..谢谢~~~!!!!

解决方案 »

  1.   

    name是关键字,另外textBox1.Text的值不能包含特殊字符,因为没做处理,
      

  2.   

    1. 1楼所说 textBox1.Text的值不能包含特殊字符
    2. 数据长度可能超过
    ....最好有错误信息贴出来
      

  3.   

    一定要用OleDbCommand?看程序看不出来什么问题吧
    引用using System.Data.SqlClient;string con = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=mytest;Integrated Security=SSPI";
    string   sqlstr   =   "insert   into  student(num,name)  VALUES (@num,@name)"; 
    SqlConnection connection= new SqlConnection(con);
    SqlCommand command = new SqlCommand(sqlstr,connection); //command.Parameters.Add("@num",OleDbType.VarChar,20);
    //command.Parameters.Add("@name",OleDbType.VarChar,20); command.Parameters.Add("@num",SqlDbType.Char,20);
    command.Parameters.Add("@name",SqlDbType.Char,20);
    command.Parameters["@num"].Value   =   "1111"; 
    command.Parameters["@name"].Value   =  "hhhh"; 
    try
    {
    connection.Open(); 
    command.ExecuteNonQuery(); 
    }
    catch(Exception ee)
    {
    MessageBox.Show("dd"+ee.ToString());
    }
    finally
    {
    connection.Close(); 
    connection.Dispose();
    }数据库版本,用OleDbCommand 可能会有问题,学习中