我的ASP.NET应用程序读取xml文件以确定它当前所处的环境(例如本地,开发,生产).
它每次打开与数据库的连接时都会检查此文件,以便知道从应用程序设置中获取哪个连接字符串.
我正在进入一个发展阶段,效率正在成为一个问题.我不认为在我希望访问数据库的过程中(非常经常)读取物理磁盘上的文件是个好主意.
我正在考虑在Application ["ConnectionString"]中存储连接字符串.所以代码就是
public static string GetConnectionString
{
if (Application["ConnectionString"] == null)
{
XmlDocument doc = new XmlDocument();
doc.Load(HttpContext.Current.Request.PhysicalApplicationPath + "bin/ServerEnvironment.xml");
XmlElement xe = (XmlElement) xnl[0];
switch (xe.InnerText.ToString().ToLower())
{
case "local":
connString = Settings.Default.ConnectionStringLocal;
break;
case "development":
connString = Settings.Default.ConnectionStringDevelopment;
break;
case "production":
connString = Settings.Default.ConnectionStringProduction;
break;
default:
throw new Exception("no connection string defined");
}
Application["ConnectionString"] = connString;
}
return Application["ConnectionString"].ToString();
}
Run Code Online (Sandbox Code Playgroud)
我没有设计应用程序所以我认为每次都必须有一个读取xml文件的原因(在应用程序运行时更改设置?)我对这里的内部工作概念很少.优缺点都有什么?您是否认为通过实施上述功能可以获得较小的性能提升?
谢谢
我想在Excel VBA中使用ADODB处理.csv文件.我尝试在网上找到一些字符串,但它们似乎都没有用.我正在使用以下文件路径:
strVFile = Application.GetOpenFilename("CSV (*.csv), *.csv")
Run Code Online (Sandbox Code Playgroud)
然后我strVFile作为参数传递给sub objReport.Load strVFile.子标题是:Public Sub Load(ByVal strFilename As String).
然后我尝试使用字符串进行ADODB连接:
pconConnection.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFilename & _
";Extended Properties=""text;HDR=Yes;FMT=Delimited(;)"";Persist Security Info=False"
pconConnection.Open
Run Code Online (Sandbox Code Playgroud)
当我运行宏并选择CSV文件时,出现错误,说"给定路径不是有效路径".我究竟做错了什么?
编辑(代码),
模块mdlReport
Public Sub Report()
Dim objReport As clsReport
MsgBox "Please select .csv file", vbInformation + vbOKOnly
strVFile = Application.GetOpenFilename("CSV (*.csv), *.csv")
If strVFile <> False Then
Set objReport = New clsReport
objReport.Load strVFile
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
类clsReport
Private pconConnection As ADODB.Connection …Run Code Online (Sandbox Code Playgroud) 我有一个使用Ninject连接到单个数据库的MVC应用程序.现在我需要支持多个数据库.目前,我的global.asax.cs文件对ninject有以下定义:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
//Using DI for controllers - use the Ninject custom controller factor
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory()); // Repository config is defined in ninject controller
}
Run Code Online (Sandbox Code Playgroud)
这是我的Ninject控制器类的样子:
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel kernel = new StandardKernel(new EriskServices());
protected override IController GetControllerInstance(RequestContext context, Type controllerType)
{
if (controllerType == null)
return null;
return (IController)kernel.Get(controllerType);
}
private class EriskServices : NinjectModule
{
public override void Load()
{
Bind<IRisksRepository>().To<MySql_RisksRepository>()
.WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["mydb1"].ConnectionString);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个处理用户身份验证的登录页面.它通过LDAP完成,不需要数据库连接.
我的问题是:我可以在用户身份验证登录页面之后绑定ninject connectionString吗?用户将拥有他们想要连接的数据库的下拉列表,例如"mydb1"或"mydb2"或"mydb3".每个连接字符串都将在web.config文件中定义. …
我正在使用Entity Framework 4.1并尝试连接到MVC Web应用程序内的新SQLServerCE 4.0数据库.我正在使用此代码
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0", "|DataDirectory|", "test.sdf");
Run Code Online (Sandbox Code Playgroud)
它引发了这个例外:
初始化字符串的格式不符合从索引86开始的规范.
这段代码出了什么问题?
如果我使用
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0")
Run Code Online (Sandbox Code Playgroud)
它工作并创建一个数据库,其名称与我的程序集名称相匹配.
我正在尝试应用此问题中提出的解决方案:在nunit测试中使用connectionstring,但似乎无法在新Framework 4.5中找到ConnectionStringSettings和ConfigurationManager对象。
我添加了命名空间:System.Configuration。凡acording 微软文档应该是。但是Visual Studio仍然找不到它。
这里有人可以帮我吗?
我创建了连接字符串:
connection.ConnectionString = @"Provider=abcdef; Server=123....; Database=abc; User Id=user; Password=xyz";
Run Code Online (Sandbox Code Playgroud)
它工作得很好.我想用变量交换密码:
connection.ConnectionString = @"Provider=abcdef; Server=123....; Database=abc; User Id=user; Password="+textBox1.Text;
Run Code Online (Sandbox Code Playgroud)
我的程序显示错误:
用户登录失败:user ...(textBox.Text ="xyz")
你知道如何正确地用变量交换密码吗?
我正在尝试使用名为AutoTag的产品进行一些非常基本的查询.
我的PostgreSQL是本地安装的(非常强劲的机器,SSD,16GB RAM,等等).
其中一个表有4000多万条记录(并且将会增长).我正在尝试做一个简单的查询,当从Postgres管理工具完成时,需要4-5分钟才能运行.
我的连接字符串尝试的变化是:
PORT = 5432; CommandTimeout = 5000 ; TIMEOUT = 1024; POOLING = True; MINPOOLSIZE = 1; MAXPOOLSIZE = 20; COMMANDTIMEOUT = 20 ; COMPATIBLE = 2.2.0.0; HOST = localhost; DATABASE = HistoricalData; USER ID = postgres; PASSWORD = passwordhere
连接器(Windows环境)是:NpgsqlDdexProvider-2.2.0-VS2013 ...位于:https: //github.com/npgsql/Npgsql/releases (使用由同一站点提供的"可安装"版本) AutoTag制造商WIndward无法解决的"大会"烦恼)
每次尝试使用AutoTag在Excel中进行查询都会导致 appx 20-30秒出现明显的超时,我会在下面粘贴,尽管上面有我的连接字符串(尝试TIMEOUT = 0,不会连接..尝试没有TIMEOUT,不没问题.
救命?!我显然对连接性有限 - 我必须使用64位Excel和64位版本的AutoTag,而另一个我可以使用FINE和Crystal Reports的连接器将无法工作(文件名psqlodbc_08_04_0200).
异常堆栈:
错误:57014:由于语句超时而取消语句(DataSourceException)
错误:57014:由于语句超时而取消语句(NpgsqlException)
AutoTag版本:13.1.12.0
Office:15(64位),EXCEL
Windows:Microsoft Windows NT 6.1.7601 Service Pack 1(64位),GC内存:53,792,440
堆栈跟踪:
例外:net.windward.env.DataSourceException
消息:错误:57014:由于语句超时而取消语句
Stack: at net.windward.xmlreport.a.a(ArrayList …Run Code Online (Sandbox Code Playgroud) 我使用以下代码连接到sql throgh windows身份验证.
string connctionstring = "connectionString={0};Database={1};Integrated Security=SSPI;";
string _connctionstring = string.Format(connctionstring, datasource, initialCatalogue);
SqlConnection _connection = new SqlConnection(_connctionstring);
_connection.Open();
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误.请帮助.我可以通过sql server登录.

我在我的笔记本电脑上安装了PL/SQL Developer(由我的公司预先加载),当我想连接到ORACLE数据库时,我给它的全部是数据库名称,用户名和密码,它连接成功.
我也在我的机器上安装了DBVisualizer(我下载它因为它易于使用),当连接到ORACLE时想要知道SID或TNSNAMES或ORACLE服务名称,我都不知道.
我如何从我的工作PL SQL开发中找出这些细节,以便我可以使用我的DBVisualizer连接到相同的ORACLE数据库
谢谢凯
Azure Function应用程序的“应用程序设置”包含可在门户中设置的数据库连接字符串的值。在C#中,可以使用
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString
Run Code Online (Sandbox Code Playgroud)
对于用JavaScript编写的Azure函数,是否存在可以访问连接字符串的等效构造?我知道它们可以存储在应用程序设置中,但是由于门户网站上有专门讨论连接字符串的部分,所以我想问这是否对Node.js函数有任何应用程序。
c# ×3
adodb ×1
asp.net ×1
asp.net-mvc ×1
azure ×1
dbvisualizer ×1
excel ×1
ninject ×1
node.js ×1
nunit ×1
performance ×1
postgresql ×1
timeout ×1
vba ×1