方案:
我想基于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
时发生这种情况。如果我没有插入那个,当然我的目标中没有任何事情发生
那么我在那段代码中犯了什么错误?我该怎么办?
答案 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