C# oledb参数型问题

C# oledb参数型问题,c#,oledb,C#,Oledb,我试图从文本框中选择文本,并将其作为oledb命令的参数之一传入,但出现此错误消息 OleDbParameterCollection仅接受非null的OleDbParameter类型对象,而不接受字符串对象 这是我的密码: string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=EstateAgent.mdb;Persist Security Info=True"; string sq

我试图从文本框中选择文本,并将其作为oledb命令的参数之一传入,但出现此错误消息

OleDbParameterCollection仅接受非null的OleDbParameter类型对象,而不接受字符串对象

这是我的密码:

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=EstateAgent.mdb;Persist Security Info=True";
            string sqlStatement = "INSERT INTO `house` (`ID`, `County`, `Town`, `Village`, `PropertyType`, `Bedrooms`, `Price`, `EstateAgent`, `Keyword`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";

            OleDbConnection myConnection = new OleDbConnection(connectionString);
            OleDbCommand myAccessCommand = new OleDbCommand(sqlStatement);

           // System.Data.OleDb.OleDbParameter param;

            myAccessCommand.Connection = myConnection;

            for (int i = 0; i < 9; i++)
            {
                myAccessCommand.Parameters.Add(textBoxControlArray[i].Text);
            }

            myConnection.Open();
            myAccessCommand.ExecuteNonQuery();
            myConnection.Close();
您看到的任何其他要点都将非常感谢。这是我第一次使用c语言的数据库

注意,我有一个包含9个文本框的控制框数组,为了执行这段代码,必须填充所有文本框


感谢

基本上,您在一个方法中添加了一个字符串对象,该方法需要一个OleDBParameter对象

myAccessCommand.Parameters.AddtextBoxControlArray[i].Text

你可能想做一些类似的事情

myAccessCommand.Parameters.Addnew OLEDBPParameterTextBoxControlArray[i]。名称,textBoxControlArray[i]。文本


这里,每个文本框的名称应与原始查询中指定的参数相同。

基本上,您是在一个需要OleDBParameter对象的方法中添加字符串对象

myAccessCommand.Parameters.AddtextBoxControlArray[i].Text

你可能想做一些类似的事情

myAccessCommand.Parameters.Addnew OLEDBPParameterTextBoxControlArray[i]。名称,textBoxControlArray[i]。文本

此处,每个文本框的名称应与原始查询中指定的参数相同。

可以从中使用:

myAccessCommand.Parameters。AddWithValue@price,txtPrice.Text

可以从中使用:

myAccessCommand.Parameters。AddWithValue@price,txtPrice.Text


在for循环中使用此选项

        for (int i = 0; i < 9; i++)
        {
            OleDbParameter op = new OleDbParameter("OP", OleDbType.VarChar, 50);
            op.Value = textBoxControlArray[i].Text;
            myAccessCommand.Parameters.Add(op);
        }

在for循环中使用此选项

        for (int i = 0; i < 9; i++)
        {
            OleDbParameter op = new OleDbParameter("OP", OleDbType.VarChar, 50);
            op.Value = textBoxControlArray[i].Text;
            myAccessCommand.Parameters.Add(op);
        }