'像'字段验证规则中的运算符不适用于OLEDB插入

时间:2017-08-28 17:27:56

标签: c# validation ms-access operators oledb

首先,我不是程序员,我这样做是为了工作中的一个小项目(我是客户服务团队负责人)。

我使用以下验证规则创建了一个Access数据库:Like" T ######" 只接受我们的员工ID(例如T123456) 它在Access中工作正常。

但是,在C#中,我的提交按钮上有以下代码:

private void btnSubmit_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            connection.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            command.CommandText = "insert into Employees (ID, LastName, FirstName) values ('" + txtTID.Text + "','" + txtLastName.Text + "','" + txtFirstName.Text + "')";

            command.ExecuteNonQuery();
            connection.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("" + ex);
            connection.Close();
        }

    }

每当我输入类似上面的example之类的内容时,我会得到一个Error Message,因为验证规则而无法插入数据。

我尝试使用不同的通配符(*)但它仍然无法正常工作。我有什么明显的遗失吗?

非常感谢您的帮助,祝您有个美好的一天!

2 个答案:

答案 0 :(得分:1)

您已经遇到了Access OLEDB提供程序的限制。如果切换到使用System.Data.Odbc和Access ODBC驱动程序,则代码应按预期工作。

答案 1 :(得分:0)

很抱歉,我无法给你发表评论。您的桌子上有一个验证规则。这意味着问题不是您的查询,而是在您的表架构师中。例如,您尝试插入的数据与字段的数据类型不匹配 见this for more info