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

时间:2013-12-01 21:30:07

标签: c# odbc

方案:
我想基于microsoft数据库(.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驱动程序]找不到   输出表'TABLENAME'。

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

4 个答案:

答案 0 :(得分:0)

    "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”

答案 1 :(得分:0)

所以我改为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的区别是什么?!

答案 2 :(得分:0)

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

INSERT INTO DBNAME..TABLENAME (FIELD1, FIELD2)

答案 3 :(得分:-1)

  

将myConnection替换为Conn