C# MS Access文件的连接字符串?

C# MS Access文件的连接字符串?,c#,.net,visual-studio-2010,ms-access,dataset,C#,.net,Visual Studio 2010,Ms Access,Dataset,我将MS Access文件添加到项目中,VS为我创建了一个数据集。我对此很满意,但现在我有一个小问题: 我想在app.config文件中包含连接字符串,以允许客户对其进行编辑。我转到app.config文件,看到了这个连接字符串,我想“太好了” 但这似乎没有被使用。我发现使用的connectionString包含在Settings.Settings文件中,我无法在运行时编辑该文件 你知道怎么解决这个问题吗?如果需要,我甚至可以通过编程方式指定自己的连接字符串,但我没有找到如何指定这个字符串 多谢

我将MS Access文件添加到项目中,VS为我创建了一个数据集。我对此很满意,但现在我有一个小问题:

我想在app.config文件中包含连接字符串,以允许客户对其进行编辑。我转到app.config文件,看到了这个连接字符串,我想“太好了”

但这似乎没有被使用。我发现使用的connectionString包含在Settings.Settings文件中,我无法在运行时编辑该文件

你知道怎么解决这个问题吗?如果需要,我甚至可以通过编程方式指定自己的连接字符串,但我没有找到如何指定这个字符串

多谢各位

编辑:这里有一些代码:

生成的代码的一个示例似乎引用了Settings.Settings文件:

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
        private void InitConnection() {
            this._connection = new global::System.Data.OleDb.OleDbConnection();
            this._connection.ConnectionString = global::Infoteam.CliniqueLaSource.DocuShare.Communication.DatabaseAccess.Properties.Settings.Default.ClsConnectionString;
        }
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Infoteam.CliniqueLaSource.DocuShare.DatabaseAccess.Properties" GeneratedClassName="Settings">
  <Profiles />
  <Settings>
    <Setting Name="ClsConnectionString" Type="(Connection string)" Scope="Application">
      <DesignTimeValue Profile="(Default)">
        &lt;?xml version="1.0" encoding="utf-16"?&gt;
        &lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
        &lt;ConnectionString&gt;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Cls.mdb;Persist Security Info=True&lt;/ConnectionString&gt;
        &lt;ProviderName&gt;System.Data.OleDb&lt;/ProviderName&gt;
        &lt;/SerializableConnectionString&gt;
      </DesignTimeValue>
      <Value Profile="(Default)">Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Cls.mdb;Persist Security Info=True</Value>
    </Setting>
  </Settings>
</SettingsFile>
我在app.config文件中的内容:

 <connectionStrings>
    <add name="Infoteam.CliniqueLaSource.DocuShare.DatabaseAccess.Properties.Settings.ClsConnectionString"
        connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Workspace\CliniqueLaSource.CLS-DocuShare\Main\Resources\Cls.mdb;Persist Security Info=True"
        providerName="System.Data.OleDb" />
  </connectionStrings>
看看这是否有帮助:

编辑

对不起,第一次看错了


这就是您试图实现的目标吗?

当VS为您创建强类型的
数据集时,它还将围绕
数据适配器创建强类型包装,以填充
数据集并更新数据库

这些强类型包装器或
TableAdapters
可以配置为使用您想要的任何连接。只需将
Connection
属性设置为使用所需连接字符串初始化的连接,即可全部设置完毕

如果每次创建新的
TableAdapter
时设置连接太麻烦,您还可以利用它们是
部分类的优势。这意味着您可以添加另一个代码文件,该文件不会在每次DataSet designer工具更新基础代码并重载DataTable构造函数时被覆盖,因此它会接受连接字符串或连接实例,并且您可以在构造函数内相应地设置属性:

 public partial class MyTableTableAdapter
 {
     public MyTableTableAdapter(OleDbConnection connection)
     {
          if (connection == null)
              throw new ArgumentNullException("connection");

          base.Connection = connection;
     }

     public MyTableTableAdapter(string connectionString)
     {
          base.Connection = new OleDbConnection(connectionString);
     }
}

如果您有很多
TableAdapter
,这可能会让您感到厌烦,您最好在每次实例化
TableAdapter

时手动设置连接,这不是他想要的。。。。。我想你没有读我的帖子。。。我确切地知道要设置什么连接字符串,问题是我需要在app.config文件中设置它,而它使用的是Settings.Settings文件中的连接字符串。是的,我很抱歉,我读错了,在我发布这篇文章后发现了这一点。@Jeff Sheldon:不,我希望应用程序使用app.config文件中的连接字符串(它是由visual studio创建的)。因为我可以编辑它,而无需visual studio重建它。我理解。该代码应该允许您通过执行以下操作来更改设置连接字符串:My.settings.SetUserOverride(“ConnectionString1”,ConfigurationManager.ConnectionStrings(“MyAppConnString”))请显示显示连接字符串的配置文件中的代码段(必要时从中删除敏感信息)。我问的原因是,.settings文件和.config文件之间存在关系,我们可以更好地解释。此外,如果您能在代码中找到使用了.settings字符串而不是.config字符串的地方,这会有所帮助。是否不可能先从设置文件中删除conn字符串,然后再从ap中删除conn字符串p、 配置将被考虑。在编程上,您可以使用conn=new-OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;”“+”数据源=“+Server.MapPath(“Pets/Pets.mdb”);@David:I添加了一些代码:)@Rahul:No,这是不可能的,如果我这样做,我在生成的代码中有编译错误,找不到连接字符串。我可以在代码中的什么位置指定此连接?(我不在服务器上,这是一个简单的客户端应用程序可能……我只是好奇。不管怎样,如果您想在代码中指定conn字符串,请查看此MSDN post for MS Access。它还提供了一个示例,会有所帮助。我查看了您的代码,但它没有使用任何由visual Studio自动生成的数据集。)我有一个访问器,可以创建每个表适配器,所以我将直接使用它!谢谢!
 public partial class MyTableTableAdapter
 {
     public MyTableTableAdapter(OleDbConnection connection)
     {
          if (connection == null)
              throw new ArgumentNullException("connection");

          base.Connection = connection;
     }

     public MyTableTableAdapter(string connectionString)
     {
          base.Connection = new OleDbConnection(connectionString);
     }
}