[英]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.