c# - 无法将电话号码插入数据库(MS Access 文件)

标签 c# database ms-access-2010

我正在创建一个数据库应用;与 MS Access 数据库文件。 发生的一切都是正确插入的,但不是电话号码。 输入电话号码时,我正在使用的应用程序抛出异常。

我已经仔细检查了我的编码和我的数据库,但无法弄清楚为什么会导致这个问题。 这是代码的一部分。

    private void btn_Save_Click(object sender, EventArgs e)
    {
        {
            try
            {
                OleDbCommand DBcmd = new OleDbCommand();
                DBcmd.CommandType = CommandType.Text;
                DBcmd.CommandText = "INSERT INTO tbl_ClientInfo (FirstName, LastName, Address, ZipCode, City, State, Country, Language, PhoneNr, MobileNr)" + "VALUES (@FirstName, @LastName, @Address, @ZipCode, @City, @State, @Country, @Language, @PhoneNr, @MobileNr)";
                DBcmd.Parameters.AddWithValue("@FirstName", txt_FirstName.Text);
                DBcmd.Parameters.AddWithValue("@LastName", txt_LastName.Text);
                DBcmd.Parameters.AddWithValue("@Address", txt_Address.Text);
                DBcmd.Parameters.AddWithValue("@ZipCode", txt_ZipCode.Text);
                DBcmd.Parameters.AddWithValue("@City", txt_City.Text);
                DBcmd.Parameters.AddWithValue("@State", txt_State.Text);
                DBcmd.Parameters.AddWithValue("@Country", ComboBox_Countries.SelectedItem);
                DBcmd.Parameters.AddWithValue("@Language", comboBox_Languages.SelectedItem);
                DBcmd.Parameters.AddWithValue("@PhoneNr", txt_PhoneNr.Text);
                DBcmd.Parameters.AddWithValue("@MobileNr", txt_MobileNr.Text);


                DBcmd.Connection = DBconnection;
                DBconnection.Open();

                DBcmd.ExecuteNonQuery();

                DBconnection.Close();

            catch (Exception ex)
            {
                System.IO.StreamWriter file = new System.IO.StreamWriter(@"d:\test.txt");
                file.WriteLine(ex);

                file.Close();
            }
        }
    }

提前致谢

最佳答案

语言是 reserved keyword在 MS-Access Jet 中。需要用方括号封装

DBcmd.CommandText = "INSERT INTO tbl_ClientInfo (FirstName, LastName, Address, ZipCode, " + 
                    "City, State, Country, [Language], PhoneNr, MobileNr)" + 
                    "VALUES (@FirstName, @LastName, @Address, @ZipCode, " + 
                    "@City, @State, @Country, @Language, @PhoneNr, @MobileNr)";

如果仍然可行,我建议更改该列名称。每次使用这张 table 时,你总会发现自己陷入了这种困境。

关于c# - 无法将电话号码插入数据库(MS Access 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19209688/

相关文章:

c# - 即使表中的列不允许为空,空文本框仍将数据保存在 SQL Server 中

c# - 刷新通知区域中的图标 (Windows CE)

c# - C#中的面向对象问题

php - MySQL 查询增强性能取决于日期

ms-access - 有没有办法在转换后的 access 97 表单上应用主题?

c# - WPF 动画 : Detect if any animation is in process?

php - 如果我通过将搜索字段保留为空白来点击搜索按钮,并且需要额外的一个 HTML 按钮来显示所有条目,为什么要显示 mysql 数据库中的所有数据呢?

MySql 查询以获取在每个国家/地区为每个目的花费的天数? (获取第一个表中存在的第二个表中的所有记录的计数)

ms-access - 将文件拖放到 Microsoft Access 中

ms-access - 空列的 DMin