如果安装了SQL Server(标准版),如何通过代码获取服务器名称.
我们在创建连接字符串时传递服务器名称以连接SQL Server.我们可以通过代码检索这个值吗?
string sqlConnectionString = string.Format(
"user id={0};password={1};server={2};Trusted_Connection=no;database=TestDB;
connection timeout={3}",
dirDBinfo.UserName, dirDBinfo.Password, "ServerName", dirDBinfo.TimeOut);
Run Code Online (Sandbox Code Playgroud) 我有一个控制台应用程序,它将connectionstring作为参数.我必须在app.config中设置一个名为'ConnectionString'的ConnectionString,并将给定的参数设置为sql connectionstring.
谢谢答案.借助我的链接,我得到了这个:
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var connectionStringSettings = new ConnectionStringSettings("ConnectionString",_ arguments ["connectionString"],"System.Data.SqlClient"); config.ConnectionStrings.ConnectionStrings.Add(connectionStringSettings); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection( "的ConnectionStrings");
我正在开发一个.net winforms桌面应用程序,该应用程序旨在作为备份应用程序在多个银行的分支机构中运行,只要主要的(Web应用程序)因银行中心节点的连接问题而不可用.除了SQL-Server数据库之外,分支本身不计入任何企业服务.因此,应用程序应该能够直接连接到SQL-Server.当我必须为应用程序提供密码以连接到数据库时,我的问题出现了:
1)在app.config文件或类似文件中以明文形式存储密码不是一个选项(客户要求密码加密)
2)存储在配置文件中加密的密码导致需要在本地可用的加密密钥.加密密钥可以在应用程序的代码中进行硬编码,但使用.net-decompiler或类似代码可以轻松读取.
3)由于与2)相同的原因,使用自定义算法加密/解密将不起作用.
4)银行不支持综合安全性
此外,客户要求他们应该能够在一个位置(在分支内)更改密码,而无需从一台计算机转到另一台更新配置文件(这排除了使用机器密钥加密密码的可能性)在个人机器的配置文件,如asp.net吗)
您是否会提供任何其他方法或建议来解决这个问题?我将不胜感激任何帮助.在此先感谢Bernabé
我需要连接到Sqlite中的数据库,所以我下载并安装了System.Data.SQLite,并且设计师拖了我所有的表.
设计者用.创建了一个.cs文件
public class Entities : ObjectContext
Run Code Online (Sandbox Code Playgroud)
和3个构造函数:
1
public Entities() : base("name=Entities", "Entities")
Run Code Online (Sandbox Code Playgroud)
这个从App.config加载连接字符串,并正常工作.
App.config中
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/Db.TracModel.csdl|res://*/Db.TracModel.ssdl|res://*/Db.TracModel.msl;provider=System.Data.SQLite;provider connection string="data source=C:\Users\Filipe\Desktop\trac.db"" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
第2
public Entities(string connectionString) : base(connectionString, "Entities")
Run Code Online (Sandbox Code Playgroud)
第3
public Entities(EntityConnection connection) : base(connection, "Entities")
Run Code Online (Sandbox Code Playgroud)
这是问题,我已经尝试过n配置,已经使用EntityConnectionStringBuilder来创建没有运气的连接字符串.
能指点我正确的方向!?
EDIT(1)
如果我使用de parameterless构造函数我可以做我的查询,但我需要更改连接字符串,我不能使用我的app.config中的那个.
如何构建有效的连接字符串?!
c# sqlite connection-string system.data.sqlite visual-studio-2010
在我的.NET应用程序中,我将连接到Microsoft SQL Server 2005或2008数据库.用户选择应用程序显示它的实例,然后应用程序应该对此实例执行某些操作.我从注册表中获取实例名称,HKLM\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL.
我不知道用户是否选择了默认实例或命名实例(并且Instance Names注册表值中没有此类信息).但是,为了连接到任意实例,我应该使用其中一个
Server=(local)
Run Code Online (Sandbox Code Playgroud)
要么
Server=MSSQLSERVER\instance_name
Run Code Online (Sandbox Code Playgroud)
在我的ADO.NET连接字符串中.我只能使用一个连接字符串模板吗?我尝试将Server = MSSQLSERVER\MSSQL10.MSSQLSERVER用于我的默认SQL Server 2008实例,但连接失败.
.net sql-server ado.net connection-string database-connection
我已经收集了一份(希望有用的)总结我已经研究过的方法来完成这篇文章的主题,以及我遇到的问题.请告诉我你是否找到了其他你喜欢的方式,特别是如果他们解决了我提到的方法没有的问题.
在web.config中保留连接字符串,并使用XDT/msdeploy转换根据我的活动构建配置(例如,web.PublicTest.config文件)将其替换为设置.我的问题是我合并并将一些特定于服务器的设置埋入具有许多配置元素的全局相同的文件中.此外,我无法在多个对等级应用程序之间共享连接字符串定义.
为web.config中的连接字符串指定configSource ="DeveloperLocalConnectionStrings.config"值,XDT将此值转换为指向我的代码库中多个特定于环境的文件之一.我的问题是我将所有环境的密码发送到所有目的地(当然还有SVN),并且未使用的配置部分位于等待意外使用的服务器上.
machine.config文件中的特定连接字符串而不是web.config.问题:heck期望在machine.config中找到连接字符串的人,以及因此导致意外名称冲突的可能性很高.
指定configSource ="LocalConnectionStrings.config",不要转换值,并编辑项目xml以排除连接字符串配置的部署.http://msdn.microsoft.com/en-us/library/ee942158.aspx#can_i_exclude_specific_files_or_folders_from_deployment - 这是我发现的最好的解决方案,以满足我对专有(非分布式)Web应用程序的需求,但我很偏执,另一个团队成员有一天会来复制生产网站进行测试,出于某种原因,瞧!现在正在UAT期间修改生产数据库.(更新:我发现在这种情况下我不能使用一键发布,只有msdeploy命令行和-skip参数.如上所述排除文件与将其设置为"无"编译操作相同,而不是"内容",并导致包从部署目标中删除它.)
连接部署包以提示连接字符串(如果尚未设置)(我不知道如何执行此操作但我知道这是可能的).这将与上面的#4类似.
指定configSource ="..\ConnectionStrings.config".对我的需求很有用,因为我可以在我选择的应用程序之间共享配置,并且在我的应用程序目录中没有任何特定于机器的东西.不幸的是,在这个属性中不允许使用父路径(就像它们用于'appSettings file =""' - 请注意,你可以在configSource = reference中使用file = spiffily).
ps这里讨论了一些这样的解决方案:ASP.Net配置文件 - >多个开发人员和部署服务器的连接字符串
我在一个项目中有一个SQL Server CE数据库,我不想将它存储在%AppData%目录中.但是我找不到在连接字符串中引用Application Data路径的方法(在App.Config中)
<?xml version="1.0"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="EntityConnectionString" connectionString="metadata=res://*/EntityModel.csdl|res://*/EntityModel.ssdl|res://*/EntityModel.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=|ApplicationData|\Entities.sdf"" providerName="System.Data.EntityClient"/>
</connectionStrings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我了解到:%APPDATA%不受支持,并且使用设置类(如建议的)也不起作用(在抛出异常时不构造设置类).
是否可以在connectionString属性中使用应用程序数据文件夹(或其他特殊文件夹)(在App.Config中)?
注意:我似乎正在寻找一种解决方案来尽早修改连接字符串(在代码中),而不是原生的App.Config解决方案.
我在AppHarbor中部署了一个使用MS SQL数据库的网站.AppHarbor为我提供了一个连接字符串,我输入settings.txt它似乎工作正常但AppHarbor建议使用该SQLSERVER_CONNECTION_STRING变量.
这是因为连接字符串可能会更改,恕不另行通知,因此唯一安全的方法是使用提到的变量.
访问下面的配置变量应该以编程方式完成,因为附加提供程序可能会更新这些值,恕不另行通知.
有没有办法覆盖DataConnectionString的设置settings.txt,并设置使用的应用程序SQLSERVER_CONNECTION_STRING变量,而不是?我假设AppHarbor以某种方式将这些变量设置为appSettings.
PS这是我在Orchard的第一个应用程序,我不熟悉这个CMS.
也许我不能再傻了,但是说真的,这是我第一次考虑这一点(这是第一次,单个用户应用程序从多个位置成为多用户)。MySQL(或与此有关的任何其他数据库)密码有什么用途?我们在连接字符串中看到的密码,就像这样:
"SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"
Run Code Online (Sandbox Code Playgroud)
是branch对用户的码字root来访问数据库tree?还是用于root访问特定计算机上的任何MySQL数据库?还是任何用户访问数据库的密码tree?或任何用户访问该计算机上任何MySQL数据库的密码?
所以我的问题基本上是?
密码是专用于MySQL,数据库还是用户?还是针对特定用户,针对特定MySQL安装上的特定数据库?或这些的任何组合?
我们可以为MySQL本身设置一个密码(如果不是branch),是否可以为数据库本身设置一个密码(如果不是branch),等等?
对不起,我的无知;)
编辑:我可以运行此查询以删除我的数据库:
query = "DROP DATABASE tree";
Run Code Online (Sandbox Code Playgroud)
使用连接字符串:
"SERVER=localhost;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"
Run Code Online (Sandbox Code Playgroud)
这不是说密码不是每个数据库而是每个用户吗?
我的Azure功能应用程序已定义ConnectionString.我想从用dotnet标准2.0编写的C#函数中检索它.我已经尝试添加System.Configuration.ConfigurationManager到project.json并使用
var str = ConfigurationManager.ConnectionStrings["my string"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
但我得到了错误
run.csx(24,15):错误CS0103:当前上下文中不存在名称"ConfigurationManager"
如何访问连接字符串?
connection-string sqlconnection .net-core azure-functions .net-standard
c# ×4
.net ×2
ado.net ×2
app-config ×2
passwords ×2
sql-server ×2
.net-core ×1
appdata ×1
appharbor ×1
asp.net ×1
deployment ×1
desktop ×1
encryption ×1
msdeploy ×1
mysql ×1
orchardcms ×1
sqlite ×1
web-config ×1
winforms ×1