0

「YearlyLimit なし」でコードを実行すると問題が発生し、適切に実行されますが、挿入クエリに YearlyLimit を追加するとエラーが発生します

「クエリ値と宛先フィールドの数が同じではありません。」

protected void btn_Save_Click(object sender, EventArgs e)
{
    string str = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/Users/Geeta/Desktop/eTimeTrackLite1.mdb;Persist Security Info=False;");
    OleDbConnection conn = new OleDbConnection(str);
    conn.Open();
    string query = "insert into LeaveTypes (LeaveTypeFName,LeaveTypeSName,YearlyLimit,Gender) values ('" + txt_leavetypename.Text + "', '" + txt_shortname.Text + "', '" + txt_yearlimit.Text + "', '" + Convert.ToString(rdbtn_all.Checked) + "', '" + Convert.ToString(rdbtn_male.Checked) + "', '" + Convert.ToString(rdbtn_female.Checked) + "')";
    OleDbCommand cmd = new OleDbCommand(query, conn);
    cmd.ExecuteNonQuery();
    conn.Close();
    BindGridData();
}
4

1 に答える 1

0

レコードに追加しようとしているアイテムが多すぎます

  1. LeaveTypeFName
  2. LeaveTypeSName
  3. 年間制限
  4. 性別

挿入しようとしています

  1. txt_leavetypename.Text
  2. txt_shortname.Text
  3. txt_yearlimit.Text
  4. Convert.ToString(rdbtn_all.Checked)
  5. Convert.ToString(rdbtn_male.Checked)
  6. Convert.ToString(rdbtn_female.Checked)

最後のフィールドに移動する項目にチェックを入れる必要があります

于 2012-05-04T13:54:59.407 に答える