C# 使用Odbc命令C将SQL插入时出错#
场景:C# 使用Odbc命令C将SQL插入时出错#,c#,odbc,C#,Odbc,场景: 我想将文本框中的数据输入基于microsoft数据库(.mdb)的数据库 我已经搜索并找到了好的线索,结果就在这里。 以下代码位于命令按钮单击事件中: using (OdbcConnection conn= new OdbcConnection()) { conn.ConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" + "Dbq=C:\\BlaBlaBla.mdb;Uid=Adm
我想将文本框中的数据输入基于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
时发生的。如果我没有插入它,我的表目标中当然不会发生任何事情。那么我在代码中犯了什么错误呢?我该怎么办
"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”
更换连接到Conn的myConnection
所以我改为OLEDB连接,我的问题解决了
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和ODBConnection有什么区别吗 此问题是因为登录后sql连接的默认数据库与表“TABLENAME”所在的数据库不同。尝试在表之前添加数据库名称,如下所示:
INSERT INTO DBNAME..TABLENAME (FIELD1, FIELD2)
看起来对我很友好。没有像
TABLENAME
这样的表。但是我已经用一个名为TABLENAME的表设置了Database.mdb,并且在我的项目文件夹中也有一个Database.mdb,但是我没有从datasources生成数据集。在更正代码时,请使用占位符。这将避免由[意外或恶意]用户输入引起的错误。对不起,我忘记编辑问题代码了。实际上,插入行中的连接字符串是conn