真的很简单的问题:
我想将连接字符串拆分为其关键字/值对,例如以下连接字符串:
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=vm-jp-dev2;Data Source=scsql\sql2005;Auto Translate=False
Run Code Online (Sandbox Code Playgroud)
会成为:
Provider=SQLOLEDB.1
Integrated Security=SSPI
Persist Security Info=False
Initial Catalog=vm-jp-dev2
Data Source=scsql\sql2005
Auto Translate=False
Run Code Online (Sandbox Code Playgroud)
问题是MSDN文档声明如果值包含在单引号或双引号字符中,则允许连接字符串值包含分号(因此,如果我理解,则以下内容有效):
Provider="Some;Provider";Initial Catalog='Some;Catalog';...
Run Code Online (Sandbox Code Playgroud)
什么是拆分此字符串的最佳方式(在C#中)?
我一直在VS2005中开发一个项目,该项目利用Access数据库的本地连接.
在过去的一周里,我安装了.NET framework 3.5以供不同的项目和VS6使用.
我回到我的VS2005应用程序,然后突然出现了一些大问题:
在使用我的OLEDB连接的任何类的设计器中显示:
无法将类型为"System.Configuration.DefaultSection"的对象强制转换为"System.Configuration.ConnectionStringsSection".隐藏
在Microsoft.VisualStudio.Editors.SettingsDesigner.AppConfigSerializer.Deserialize(DesignTimeSettings设置,Microsoft.VisualStudio.Shell.Design.Serialization.ConfigurationHelperService.ReadConnectionStrings(String configFileName,DocData configDocData,String prefix)的System.Configuration.Configuration.get_ConnectionStrings()中. Microsoft.VisualStudio.Editors.SettingsGlobalObjects上Microsoft.VisualStudio.Editors.SettingsGlobalObjects.SettingsFileGlobalObject.BuildType()的Microsoft.VisualStudio.Editors.SettingsGlobalObjects.SettingsFileGlobalObject.LoadSettings(String fileName)中的字符串SectionName,DocData AppConfigDocData,MergeValueMode mergeMode,IUIService UIService) Microsoft.VisualStudio.Shell.Design.GlobalHashCode()at Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GlobalKey.GetHashCode()的Microsoft.VisualStudio.Shell.Design.GlobalType.get_ObjectType()位于Microsoft.VisualStudio.Shell.Design.GlobalType.get_ObjectType()的.SettingsFileGlobalObject.GetObjectType()在System.Collections.Generic.ObjectEqualityComparer
1.GetHashCode(T obj) at System.Collections.Generic.Dictionary2.FindEntry(TKey键)位于Microsoft.VisualStudio.Shell.Design.CignDom.AggregateTypeResolutionService的Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GetGlobalObjects()中的Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GetGlobalObjects(Type baseType). Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType上的Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name,Boolean throwOnError,Boolean ignoreCase)中的GetTypeFromGlobalObjects(String name,Boolean throwOnError,Boolean ignoreCase)(2 names) at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.FillStatementTable(IDesignerSerializationManager manager, IDictionary table, DictionarySystem.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager )的System.ComponentModel.Design.Serialization.CodeDomSerializerBase.GetType(ITypeResolutionService trs,String name,Dictionary 2 names,CodeStatementCollection statements,String className)中的String name,Boolean throwOnError),CodeTypeDeclaration声明)在System.ComponentMo Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio中的Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)中的del.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager). TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)
当我运行应用程序时,我在启动时遇到以下异常:
"无法识别的配置部分connectionStrings."
在线查看,这些问题似乎通常与VS2005中构建并部署在.net 1.1框架上的内容有关; 但这都是在VS(不在IIS上)本地作为Windows窗体应用程序运行的.我尝试卸载并重新安装VS2K5无济于事.
有什么想法吗?谢谢,马特
我们在SQL Server 2008中有一个名为drwho的Windows帐户和一个密码.在连接字符串中,我们禁用了集成安全性并添加了用户ID和密码值.
User Id=THEDOMAIN\drwho;Password=......
Run Code Online (Sandbox Code Playgroud)
但是,ASP.NET一直认为我们正在使用SQL Server身份验证.
有什么建议?
我刚开始使用Linq-to-SQL,它的使用非常棒.问题是,这个软件将在很多机器上运行,每台机器都有一个唯一的连接字符串.
有没有办法让我手动设置Linq-to-SQL(.dbml)使用的连接?
我现在正在做的事情就是创建.dbml文件,在图形设计器中我将表从Server Explorer拖到.dbml的白板上.
我在web.config中有以下内容
<connectionStrings>
<add name="ActiveDirectoryConnection" connectionString="LDAP://ActiveDirectoryDomain1.com" providerName="System.Web.Security.ActiveDirectoryMembershipProvider"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我需要在我的登录页面添加一个下拉框,允许用户将connectionString更改为其他字符串,例如"LDAP://ActiveDirectoryDomain2.com"
在C#代码后面如何更改connectionString值?
我遇到的问题是有4个其他web.config设置调用一个connectionString.例如:
<activeDirectorySecurityContextSettings connectionStringName="ActiveDirectoryConnection" defaultADUserName="ReportUser" defaultADPassword="password"/>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个使用EF CTP5的应用程序.
在这种特殊情况下,我需要降解为一些经典ADO.NET(以读取在存储过程中,其中EF不支持多个结果集).
因此,我试图使用来自对象的现有连接字符串EntityConnection,如下所示:
var ctx = (this as IObjectContextAdapter).ObjectContext;
var efCon = ((EntityConnection) (ctx.Connection)).StoreConnection;
var con = new SqlConnection(efCon.ConnectionString);
con.Open(); // exception thrown
Run Code Online (Sandbox Code Playgroud)
当我调试时,我看到ConnectionString它不包含密码,只包含数据源,用户名,数据库等.
这是一个安全的事情,为什么他们删除它?EF是否在某处隐藏密码并仅在执行存储过程时使用它?
EF连接字符串与经典ADO.NET连接字符串不同,因为它具有元数据信息.
所以看起来我将要删除我需要的连接字符串的一部分,将其放在web.config中并将其传递给存储库.
当然必须有更好的方法!
ado.net connection-string sql-server-2008 entityconnection entity-framework-ctp5
我想以编程方式从web.config读取所有连接字符串,而不指定连接字符串的名称.并将该信息用于不同目的,例如在屏幕上打印出来.有可能,我该怎么做?
谢谢,
尝试创建针对SQL Server 2012高可用性组的"只读"意图连接字符串,在本文之后,我得到:
System.ArgumentException:不支持关键字:'application intent'.在System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable,String connectionString,Boolean buildChain,Hashtable synonyms definitions,Boolean firstKey)
这是在Windows 7 Pro计算机上,针对基于SQL Server 2012的高可用性组(已确认使用"-ReadOnly"参数).
有两篇关于修补程序的MS KB文章介绍了"Application Intent",但它们适用于Framework版本3.5和4.我没有找到任何4.5,所以我认为支持包括在内.两个4.5和SQL服务器本机客户端应该支持外的开箱.
我们正在使用4.5.
这是连接字符串:
Data Source=HAListener;Initial Catalog=*********;User ID=************;Password=********; Application Intent=ReadOnly
Run Code Online (Sandbox Code Playgroud)
有人遇到过这个错误吗?
已解决 应用程序意图中不应有任何空格:
ApplicationIntent=ReadOnly
Run Code Online (Sandbox Code Playgroud) sql-server connection-string high-availability sql-server-2012
我有一个使用连接字符串连接到oracle的代码:
conn = cx_Oracle.connect('username/password@server:port/services')
Run Code Online (Sandbox Code Playgroud)
但问题是我的密码包含@字符,所以它可能会成为
conn = cx_Oracle.connect('username/p@ssword@server:port/services')
Run Code Online (Sandbox Code Playgroud)
它回来了
DatabaseError:ORA-12154:TNS:无法解析指定的连接标识符
我在这个设置中使用Django和Oracle
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'Services',
'USER': 'user',
'PASSWORD': 'p@ssword',
'HOST': 'ip',
'PORT': 'port',
}
}
Run Code Online (Sandbox Code Playgroud)
我无法更改密码:(有谁知道这个问题?
创建新的WebJob项目时,AzureWebJobsStorage连接字符串将添加到App.config> configuration> connectionStrings
相比之下,存储帐户连接字符串的Microsoft文档清楚地表明AppSettings就是他们所说的.
推荐的地方是什么?是的ConnectionStrings只为数据库连接字符串?
我们将使用Azure Web App中的连接字符串
c# ×4
asp.net ×3
.net ×2
web-config ×2
ado.net ×1
azure ×1
django ×1
linq-to-sql ×1
oracle ×1
python ×1
sql-server ×1
string ×1