C# 如何将数据插入Microsoft Access数据库?

C# 如何将数据插入Microsoft Access数据库?,c#,.net,sql,ms-access,insert,C#,.net,Sql,Ms Access,Insert,我正在尝试将数据插入Microsoft Access数据库 我将数据插入Access数据库,但第一次和第二次是唯一显示我插入的数据的时间。当我重新构建应用程序时,插入的数据将消失。我不知道他们去了哪里,也不知道他们去了哪里。我使用C#和.NET框架进行开发。以下是代码的相关部分: OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["Constr"].ConnectionString);

我正在尝试将数据插入Microsoft Access数据库

我将数据插入Access数据库,但第一次和第二次是唯一显示我插入的数据的时间。当我重新构建应用程序时,插入的数据将消失。我不知道他们去了哪里,也不知道他们去了哪里。我使用C#和.NET框架进行开发。以下是代码的相关部分:

OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["Constr"].ConnectionString);
OleDbCommand com = new OleDbCommand();
com.Connection = con;
com.CommandText = "Insert into Language(English,Type,Thai) values(@eng,@type,@thai)";
com.Parameters.AddWithValue("@eng", english);
com.Parameters.AddWithValue("@type", type);
com.Parameters.AddWithValue("@thai", thai);
con.Open();
com.ExecuteNonQuery();

我写了那个代码,但我觉得很奇怪。它不会显示任何错误或异常,但我的数据没有正确插入。这是插入数据的正确方法吗?如果是这样,为什么不插入?

我认为语言应该是一个保留词,你应该把它放在[]括号中

也可以考虑使用块,如

来包装<代码>中的代码
using (OleDbConnection con = new OleDbConnection(...))
{
    using (OleDbCommand com = new OleDbCommand(sqlString, con))
    {
        //code
    }
}

除此之外[表名可能存在问题,并且您没有关闭连接],我看不出代码有任何错误。

可能是您的连接字符串不正确,您可以使用.udl文件来修改它 只需点击链接

您还可以检查下面显示的代码

        OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\ruby\\Desktop\\screenShots\\ruby.mdb;Persist Security Info=False");
        con.Open();
        OleDbCommand cmd = new OleDbCommand("insert into raj(Name,Roll) values('XYZ',12);",con);
        cmd.ExecuteNonQuery();

您为查询定义了参数,但我看不到这些参数绑定到实际数据的任何地方

尝试一些简单的测试,将作为参数传递的变量替换为实际值,以便隔离问题:

换言之,替换为:

com.Parameters.AddWithValue("@eng", english);
com.Parameters.AddWithValue("@type", type);
com.Parameters.AddWithValue("@thai", thai);
比如说:

//I don't know the data types of your fields, so I'm guessing
com.Parameters.AddWithValue("@eng", "Test1");
com.Parameters.AddWithValue("@type", myEnum.Latin);
com.Parameters.AddWithValue("@thai", "Test1a");
如果这样做有效,那么您的问题可能在于
英语
类型
泰语
变量,您需要确保他们获得了您认为他们应该获得的数据

当我重建我的应用程序时,我插入的数据就消失了

我怀疑在重建应用程序时,您的数据库正在被覆盖


例如,如果您的应用程序包含一个MDB文件,该文件在生成时复制到输出目录,并从输出目录使用。

您使用的Access DB的版本是什么?您说“当我重新生成应用程序时,插入的数据不见了。”-但后来您说“我的数据插入不正确”-是哪一种-插入的数据在重建时消失还是根本没有插入?语言是保留字。我还想知道English、Type和Thai变量的值。