无法使用 SQL (OLEDB) C# 写入Microsoft访问文件



我知道这可能被认为是一个重复的问题,但我陷入了僵局,我不知道我做错了什么,我需要帮助。重复的问题说使用 OLEDB 以写入 Microsoft Access 文件,和以前一样,我使用 SQL 连接来完成我的任务。据我所知,没有语法,逻辑或运行时错误,Visual Studios也没有问题。

当我运行代码并去向 Microsoft Access 数据库表添加一个新条目时,它说它有效,但是当我去查看文件时,那里什么都没有。有人请帮助我,我已经浏览了所有的链接,所有网页,所有搜索引擎,我不知道出了什么问题。我很想了解出了什么问题以及如何解决它,这样我就不必再寻求帮助了。

目前我是一名大学生,我正在做一个团队任务。我们的任务是创建一个窗口,该窗口将接受用户的输入,然后将其作为条目添加到Microsoft访问文件中,就好像它是SQL数据库一样。

我们遇到的问题是,我们正在尝试将新条目添加到名为 Artist 的表下的本地 Microsoft Access 文件中。我以前曾连接到实际的SQL服务器,而我的小组中没有其他人,更糟糕的是,也没有人在我们的PC上使用Microsoft Access文件来做到这一点。

我已使用数据库配置向导在Visual Studios中添加了数据库(Microsoft访问文件)。起初我使用直接的SQL来执行此操作,然后我被告知我需要使用OLEDB才能执行此操作。所以我已经在代码中实现了,但由于某种原因我仍然无法让它工作。如果有人能帮我一把,告诉我我做错了什么,我将不胜感激。

我认为对任何帮助我都很重要的细节:

我尝试将新条目写入的表的名称:艺术家

Microsoft访问文件的名称:Kays.accdb

Microsoft访问文件的位置:C:\KayDB\Kays.accdb(本地计算机)

再一次,我将非常感谢任何人能给我的任何帮助。我真的很好奇为什么代码不起作用,请帮助我理解。

我的代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Kay
{
public partial class Kay_Green : Form
{
string Username,Fname, Mname, Lname, streetaddress, city, phonenumber, emailaddress, zipcode, taxIDnummber, state;
string[,] SQLTable = new string[0, 10];
public Kay_Green()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{//Save Button
/*Upon clicking the save button, gather all info and save it into an temp array.
Then send it to the SQL database.*/
/*The order of the data in the array will be the same order in the SQL table.*/
Fname = tbFirstName.Text;
Mname = tbMiddleInitial.Text;
Lname = tbLastName.Text;
streetaddress = tbStreet.Text;
city = tbCity.Text;
state = cbState.Text;
phonenumber = tbPhoneNumber.Text;
emailaddress = tbEmailAddress.Text;
zipcode = tbZipCode.Text;
taxIDnummber = tbTaxID.Text;
Username = tbUserName.Text;
/*SQLTable[0,0] = taxIDnummber;
SQLTable[0,1] = Fname;
SQLTable[0,2] = Mname;
SQLTable[0,3] = Lname;
SQLTable[0,4] = streetaddress;
SQLTable[0,5] = city;
SQLTable[0,6] = state;
SQLTable[0,7] = zipcode;
SQLTable[0,8] = phonenumber;
SQLTable[0,9] = emailaddress;*/

/*Below is the details for the SQL connection*/
string connectstring="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\KayDB\Kays.accdb";
OleDbConnection connection=new OleDbConnection(connectstring);
OleDbCommand command;
OleDbDataAdapter adapter;
DataTable dt = new DataTable();

string sql ="Insert into ARTIST values ('" + taxIDnummber + "','" 
+ emailaddress + "','" + Fname + "','" + Mname + "','"
+ Lname + "','" + phonenumber+"','"+ Username + "','" 
+ streetaddress + "','" + city + "','" +state+ "','" 
+ zipcode + "')";

try
{
connection.Open();
command = new OleDbCommand(sql, connection);
MessageBox.Show("Connection Open And data added to table! ");

connection.Close();
}
catch (Exception ex)
{
MessageBox.Show("Can not open connection ! " + ex.StackTrace.ToString());
}
/*Above is the details for the SQL connection*/
}
private void btnCancel_Click(object sender, EventArgs e)
{//Cancel Button
tbCity.Clear();
tbEmailAddress.Clear();
tbFirstName.Clear();
tbLastName.Clear();
tbMiddleInitial.Clear();
tbPhoneNumber.Clear();
tbStreet.Clear();
tbTaxID.Clear();
tbZipCode.Clear();
tbUserName.Clear();
Close();//Go back to switchboard from here

}
private void btnClear_Click(object sender, EventArgs e)
{//Clear button
tbCity.Clear();
tbEmailAddress.Clear();
tbFirstName.Clear();
tbLastName.Clear();
tbMiddleInitial.Clear();
tbPhoneNumber.Clear();
tbStreet.Clear();
tbTaxID.Clear();
tbZipCode.Clear();
tbUserName.Clear();
}

}

}

此代码

command = new OleDbCommand(sql, connection);

设置命令但不运行它

之后需要运行以下命令:

command.ExecuteNonQuery();

这与连接字符串无关

相关内容

  • 没有找到相关文章

最新更新