C# 连接 Access 数据库

时间:2023-03-08 23:29:01
C# 连接 Access 数据库

 c#连接Access 数据库需要System.Data, System.Data.OleDb

using System.Data
using System.Data.OleDb public OleDbConnection getConn()
{
string connstr="Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=D:\\test\\distance.mdb";
OleDbConnection conn= new OleDbConnection(connstr);
return(conn);
}

建立数据表

 private void Createtable()
{
OleDbConnection conn = null; ;
try
{
conn = getConn();
string strAccessCreatetables = "create table distance (ID int NOT NULL, PicName varchar(255) NOT NULL)";
OleDbCommand myCommand = new OleDbCommand(strAccessCreatetables, conn);
conn.Open();
}
catch (Exception ex)
{
MessageBox.Show("Error: Failed to create table.\n{0}", ex.Message);
}
finally
{
conn.Close();
}
}

插入元素

private void AddNote(string picname)
{
try
{
OleDbConnection conn = getConn();
conn.Open();
string insertstr = "insert into distance values(1,'" + picname + "')";
OleDbCommand insertcmd = new OleDbCommand(insertstr, conn);
insertcmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error: Failed to insert.\n{0}", ex.Message);
}
}

  注意如果在window x64 或 anyCPU 下运行会出错提示: 未在本机计算机上注册“,改成x86 即可,或者x64 下使用ADOX,需加入两个引用Interop.ADODB, Interop.ADOX即可

  public static bool CreateMDBDataBase(string mdbPath)
{
try
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + mdbPath + ";");
cat = null;
return true;
}
catch { return false; }
}