繁体   English   中英

使用 Odbc 命令 C# 的错误 SQL INSERT INTO

[英]Error SQL INSERT INTO with Odbc Command C#

设想:
我想基于微软数据库(.mdb)将文本框中的数据输入到数据库中,我已经搜索并找到了很好的线索,我的结果就在这里。
下面的代码在命令按钮点击事件中:

using (OdbcConnection conn= new OdbcConnection())
{
    conn.ConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" + 
            "Dbq=C:\\BlaBlaBla.mdb;Uid=Admin;Pwd=;";
    conn.Open();

    using (OdbcCommand cmd = new OdbcCommand(
         "INSERT INTO TABLENAME (FIELD1,FIELD2,FIELD3) VALUES ('" + txtFIELD1Input.Text + "','" + txtFIELD2Input.Text + "','" + txtFIELDInput.Text + "' )", conn))
    {
        cmd.ExecuteNonQuery();
    }

    conn.Close();
}

当我单击命令按钮时,出现不友好的异常

错误 [42S02] [Microsoft][ODBC Microsoft Access Driver] 找不到输出表“TABLENAME”。

当我插入cmd.ExecuteNonQuery时发生了这种情况。 如果我没有插入它,那么我的表目标中当然不会发生任何事情。
那么我在该代码中犯了什么错误? 我应该怎么办?

    "INSERT INTO TABLENAME (FIELD1,FIELD2,FIELD3) VALUES ('" + txtFIELD1Input.Text +    "','" + txtFIELD2Input.Text + "','" + txtFIELDInput.Text + "' )", myConnection))

把它改成

   "INSERT INTO TABLENAME (FIELD1,FIELD2,FIELD3) VALUES ('" + txtFIELD1Input.Text + "','" + txtFIELD2Input.Text + "','" + txtFIELDInput.Text + "' )", Conn))

您将 Conn 定义为您的连接字符串,而不是“myConnection”

所以我改为 OleDbConnection 并且我的问题解决了,

using (OleDbConnectionconn= new OleDbConnection())
    {
        conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\LOSERONE\Documents\DATABASE\Latihan1.mdb";
        conn.Open();

        using (OleDbCommand cmd = new OleDbCommand (
             "INSERT INTO TABLENAME (FIELD1,FIELD2,FIELD3) VALUES ('" + txtFIELD1Input.Text + "','" + txtFIELD2Input.Text + "','" + txtFIELDInput.Text + "' )", conn))
        {
            cmd.ExecuteNonQuery();
        }

        conn.Close();
    }

似乎,连接数据库必须与目标数据库属性中的连接字符串相同。 有谁可以告诉我 .mdb 数据库文件中的 OleDbConnection 和 OdbcConnection 有什么区别?!

这个问题是因为登录后sql连接的默认数据库与您的表'TABLENAME'所在的位置不同。 尝试在表之前添加数据库名称,如下所示:

INSERT INTO DBNAME..TABLENAME (FIELD1, FIELD2)

将您的 myConnection 替换为 Conn

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM