将是/否参数传递给来自C#的MS Access中的查询

时间:2014-01-15 04:18:25

标签: c# ms-access ado.net

tblCategory c=new tblCategory();     
OleDbCommand cm = new OleDbCommand();
            cm.Connection = AccessConnection();
            cm.CommandType = CommandType.StoredProcedure;
            cm.CommandText = "instblCategory";
            cm.Parameters.Add("vCategoryName", OleDbType.VarChar).Value = c.CategoryName;
            cm.Parameters.Add("vdtCreated", OleDbType.VarChar).Value = c.DtCreated;
            cm.Parameters.Add("vIsActive", OleDbType.Boolean).Value = c.IsActive;
            cm.Parameters.Add("vDescription", OleDbType.VarChar).Value = c.Description;
            if (!Exist(c))
            {
                cm.Connection.Open();
                cm.ExecuteNonQuery();
                cm.Connection.Close();
            }

我在cm.ExecuteNonQuery()时遇到错误。是“数据类型不匹配”。 我尝试一次只传递一个参数,我发现传递布尔值会导致错误。

请告诉我如何使用C#将布尔值传递给MS Access中的查询?

1 个答案:

答案 0 :(得分:-1)

对于Access数据库是/否需要字段:

  • 是= -1值//是指-1
  • 否= 0值//否意味着0

在CheckBox事件中编写代码

int checkboxevent ;
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{

    if (checkBox1.Checked)
        checkboxevent = -1; 
    else
        checkboxevent = 0;
}

将复选框值传递给Access数据库。写下这样的查询:

Query = "insert into Test001 (checkbox) values ( '" + checkboxevent + "')";