【发布时间】:2012-03-13 04:47:17
【问题描述】:
我试图使用参数化查询将值插入 Access 数据库:
private void button1_Click(object sender, EventArgs e)
{
if (validationcontrol())
{
MessageBox.Show(cmbjobcode.SelectedValue.ToString());
OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection(connString);
oleDbConnection1.Open();
OleDbCommand oleDbCommand1 = new System.Data.OleDb.OleDbCommand("INSERT INTO quotationmastertable (quotationcode ,jobcode , jobpk , sillabordercharges , battabordercharges , driverpayment , rent , extra , total , discount , remark ,amount ) Values (?,?,?,?,?,?,?,?,?,?,?,?) ", oleDbConnection1);
oleDbCommand1.Parameters.Add(txtquotationno.Text);
oleDbCommand1.Parameters.Add(cmbjobcode.Text);
oleDbCommand1.Parameters.Add(cmbjobcode.SelectedValue);
oleDbCommand1.Parameters.Add(int.Parse(txtsilabordercharges.Text));
oleDbCommand1.Parameters.Add(int.Parse(txtbattacharges.Text));
oleDbCommand1.Parameters.Add(int.Parse(txtdriverpayment.Text));
oleDbCommand1.Parameters.Add(int.Parse(txtrent.Text));
oleDbCommand1.Parameters.Add(int.Parse(txtextra.Text));
oleDbCommand1.Parameters.Add(int.Parse(txttotal.Text));
oleDbCommand1.Parameters.Add(int.Parse(txtdiscount.Text));
oleDbCommand1.Parameters.Add(txtremark.Text);
oleDbCommand1.Parameters.Add(int.Parse(txtamount.Text));
oleDbCommand1.CommandType = CommandType.Text;
oleDbCommand1.ExecuteNonQuery();
oleDbConnection1.Close();
MessageBox.Show(txtquotationno.Text);
}
}
但我在第一行本身就遇到了异常:
oleDbCommand1.Parameters.Add(txtquotationno.Text);
例外是
OleDbParameterCollection 只接受非空的 OleDbParameter 类型对象,不接受 String 对象。
我是编程新手;谁能帮忙指出我的错误?
【问题讨论】: