C#学习教程:在C#.NET中创建安装文件后更改连接字符串并将数据保存在Access数据库中。现在我遇到的问题是我必须将其作为设置文件提供给某人。我在想的是,一旦在另一台计算机上安装和执行的代码将由于Access数据库的连接字符串而产生错误,因为它与该计算机不匹配。我知道如果我分发项目,我可以将连接字符串放在app.config中,每个用户都可以根据他/她的机器更改它。但是由于我给了一个设置文件如何解决这个问题。假设您使用此连接字符串“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|yourFile.accdb;”部署您的app.config。在WinForms应用程序中|DataDirectory|shortcut表示应用程序工作文件夹,但您可以使用此代码将其更改为在运行时指向。//应用域设置信息AppDomaincurrentDomain=AppDomain.CurrentDomain;//为应用程序域创建或更新值对currentDomain.SetData("DataDirectory","Youruserchoosepath");它消除了对完整路径进行硬编码的需要,正如您所发现的那样,这会在安装过程中引起一些问题。当然,您的设置应该在用户选择的路径中提供您的数据库。您可以通过SqlConnectionStringBuilder在运行时构建ConnectionString//创建一个新的SqlConnectionStringBuilder并//用一些名称/值对初始化它。SqlConnectionStringBuilder构建器=newSqlConnectionStringBuilder(GetConnectionString());//输入连接字符串使用//服务器密钥,但新连接字符串使用//众所周知的数据源密钥。Console.WriteLine(builder.ConnectionString);//将现有的//连接字符串传递给SqlConnectionStringBuilder,然后您可以检索和//修改任何元素。builder.ConnectionString="server=(local);userid=ab;"+"密码=a!Pass113;初始目录=AdventureWorks";//现在已经解析了连接字符串,//您可以处理单个项目。Console.WriteLine(builder.Password);builder.Password="new@1Password";builder.AsynchronousProcessing=true;//您也可以使用字符串引用连接键,//也是。当您使用此技术时(default//VisualBasic中的项目属性,或C#中的索引器),//您可以为连接字符串键//名称指定任何同义词。建设者[“服务器”]=“。”;builder["连接超时"]=1000;建造者[“Trusted_Connection”]=true;Console.WriteLine(builder.ConnectionString);Console.WriteLine("按回车键结束。");控制台.ReadLine();编辑:您可以使用这种方法:LookuponSQLServer我以前遇到过这个问题,我是这样解决的。(1)在您的app.config文件中,在连接字符串中放置一个占位符。连接字符串将包含访问数据库文件的文件路径。用特殊字符串替换路径。-->(2)当您的应用程序启动时,使用Directory.GetCurrentDirectory获取应用程序路径。在创建连接之前,将##path##替换为客户端计算机上的实际路径。staticvoidtest(){strings=ConfigurationManager.ConnectionStrings["test"].ConnectionString;s.Replace("##path##",Directory.GetCurrentDirectory());OleDbConnectionconn=newOleDbConnection(s);}if要部署应用程序和SQLLocalDB,需要在数据库中添加用户(机器用户)进行访问。以上就是C#学习教程:在C#.NET中创建安装文件和更改连接字符串后分享所有内容,如果对大家有用,需要详细了解C#学习教程,希望大家多多支持更多关注——本文来自网络合集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
