C# C读/写Access数据库文件

C# C读/写Access数据库文件,c#,wpf,ms-access,C#,Wpf,Ms Access,我想使用C应用程序写入Access数据库文件,可能使用WPF。。。我还希望该文件是密码保护。。。是否可以在密码保护的情况下连接到它,或者我应该删除密码?是,您可以使用密码保护的MS Access数据库 在MS Access数据库的连接字符串中,可以提供用户名和密码 根据实现的安全类型,以下是两个示例: 使用系统数据库的工作组安全性 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Server\Share\MyData.mdb;Jet OLEDB:S

我想使用C应用程序写入Access数据库文件,可能使用WPF。。。我还希望该文件是密码保护。。。是否可以在密码保护的情况下连接到它,或者我应该删除密码?

是,您可以使用密码保护的MS Access数据库

在MS Access数据库的连接字符串中,可以提供用户名和密码

根据实现的安全类型,以下是两个示例:

使用系统数据库的工作组安全性

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Server\Share\MyData.mdb;Jet OLEDB:System Database=\\Server\Share\MyData.mdw;USER=userid, PWD=password"
使用标准MS访问安全:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Server\Share\MyData.mdb;User ID=userid;Password=password;"

是的,您可以使用受密码保护的MS Access数据库

在MS Access数据库的连接字符串中,可以提供用户名和密码

根据实现的安全类型,以下是两个示例:

使用系统数据库的工作组安全性

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Server\Share\MyData.mdb;Jet OLEDB:System Database=\\Server\Share\MyData.mdw;USER=userid, PWD=password"
使用标准MS访问安全:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Server\Share\MyData.mdb;User ID=userid;Password=password;"

使用OleDbConnection System.Data.OleDb和正确的连接字符串


Provider=Microsoft.Jet.OLEDB.4.0;数据源=C:\mydatabase.mdb;用户Id=管理员;密码=

使用OleDbConnection System.Data.OleDb和正确的连接字符串


Provider=Microsoft.Jet.OLEDB.4.0;数据源=C:\mydatabase.mdb;用户Id=管理员;密码=

我们的C.Net4.0 Windows窗体与MS Access的数据连接如下所示:

using System.Data.OleDb;
...
private void DoIt()
{
  OleDbConnection NamesDB = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CyberSprocket.mdb");

  try
  {
     NamesDB.Open();
  }
  catch (Exception ex) {
      MessageBox.Show(ex.Message);
      return;
  }
  OleDbCommand NamesCommand = new OleDbCommand("SELECT * FROM [names];", NamesDB);
  OleDbDataReader dr = NamesCommand.ExecuteReader();

  string theColumns = "";
  for (int column = 0; column < dr.FieldCount; column++)
  {
    theColumns += dr.GetName(column) + " | ";
  }
  MessageBox.Show(theColumns);

  NamesDB.Close();
}

我们的C.Net4.0 Windows窗体与MS Access的数据连接如下所示:

using System.Data.OleDb;
...
private void DoIt()
{
  OleDbConnection NamesDB = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CyberSprocket.mdb");

  try
  {
     NamesDB.Open();
  }
  catch (Exception ex) {
      MessageBox.Show(ex.Message);
      return;
  }
  OleDbCommand NamesCommand = new OleDbCommand("SELECT * FROM [names];", NamesDB);
  OleDbDataReader dr = NamesCommand.ExecuteReader();

  string theColumns = "";
  for (int column = 0; column < dr.FieldCount; column++)
  {
    theColumns += dr.GetName(column) + " | ";
  }
  MessageBox.Show(theColumns);

  NamesDB.Close();
}

如果可能的话,我想查看连接、写入过程和读取过程的代码。两个示例的区别在于,第一个示例指定了一个工作组文件,而第二个示例将使用该特定计算机上该版本Jet的默认工作组文件。@David-W-Fenton没错。除了使用默认工作组文件建议的任何参数外,它还将使用该特定MDB的登录信息,对吗?如果不指定其中一个参数,它将使用默认值。对于工作组,这是设置为默认工作组文件的内容。用户名为admin,密码为none。我想查看连接的代码,写过程和读过程(如果可能的话)。两个示例的区别在于,第一个示例指定了一个工作组文件,而第二个示例将使用该特定计算机上该版本Jet的默认工作组文件。@David-W-Fenton没错。除了使用默认工作组文件建议的任何参数外,它还将使用该特定MDB的登录信息,对吗?如果不指定其中一个参数,它将使用默认值。对于工作组,这是设置为默认工作组文件的内容。用户名为admin,密码为none.oledbconn=new-OleDbProvider=Microsoft.Jet.OleDb.4.0;数据源=C:\mydatabase.mdb;用户Id=管理员;密码=。。。我可以将数据源设置为类似于data source=mysource??但是用户名是什么呢?由于访问仅使用密码锁定文件…默认用户名为AdminOleDb conn=new OleDbProvider=Microsoft.Jet.OLEDB.4.0;数据源=C:\mydatabase.mdb;用户Id=管理员;密码=。。。我可以将数据源设置为类似于data source=mysource??但是用户名是什么呢?由于访问仅使用密码锁定文件…默认用户名为Admin您是指Jet用户级安全密码还是数据库密码?如果是前者,则可以使用ODBC或OLEDB。如果是后者,则只有ODBC支持数据库密码-使用OLEDB就不走运了。在任何情况下,数据库密码都是完全浪费时间,所以如果它是一个数据库密码,你应该完全考虑把它彻底清除掉。你是指一个JET用户级安全密码,还是一个数据库密码?如果是前者,则可以使用ODBC或OLEDB。如果是后者,则只有ODBC支持数据库密码-使用OLEDB就不走运了。在任何情况下,数据库密码都是完全浪费时间,所以如果它是一个数据库密码,你应该考虑完全摆脱它。