标签: connection-string

忽略连接字符串中的连接超时属性

我正在用C#构建一个应用程序.我正在使用连接字符串,如:

DSN=SomeDataSource; Trusted Connection = yes; Uid=SomeId; pwd=somePwd; Connection Timeout=x
Run Code Online (Sandbox Code Playgroud)

但无论我设置为什么值x(Connection Timeout = x),通过设置断点,我可以看到我的DbConnection对象的ConnectionTimeout属性始终具有默认值15.

我在这里错过了什么吗?

谢谢.

c# connection-string timeout

9
推荐指数
1
解决办法
2万
查看次数

Microsoft.ACE.OLEDB.12.0 CSV ConnectionString

我知道这种问题会不时被问到,但我找不到任何令人满意的解决方案.

如何使用MS ACE OLEDB 12打开CSV文件?我尝试使用以下代码.

DbConnection connection = new OleDbConnection();
connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Documents;Extended Properties=\"Text;HDR=Yes\"";
connection.Open();
DbCommand cmd;

cmd = connection.CreateCommand();
cmd.CommandText = "SELECT * FROM [Mappe1#csv]";
DbDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
    for (int i = 0; i < reader.FieldCount; i++)
        Console.Write("(" + reader.GetValue(i).ToString() + ")");

    Console.WriteLine();
}

cmd.Dispose();
connection.Dispose();
Console.WriteLine("Done");
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

问题是只找到一列.文本由';'分隔.即使我用"Delimited(|)"指定分隔符,它也行不通.

我找不到这个提供商的任何文档......

c# csv oledb provider connection-string

9
推荐指数
2
解决办法
4万
查看次数

当"Application Name = application"在连接字符串中时,为什么此数据库连接失败?

我们正在编写一个多租户的Silverlight应用程序.用户使用Windows窗体身份验证登录,我们从表中提取该用户的连接字符串.字符串的形式如下:

Data Source=1.2.3.4; Initial Catalog=database; Persist Security Info=True; User ID=######; Password=##########
Run Code Online (Sandbox Code Playgroud)

这工作正常.然后我们决定设置应用程序名称,因为这里列出的原因是个好主意:

Data Source=1.2.3.4; Initial Catalog=database; Application Name=application; Persist Security Info=True; User ID=######; Password=##########
Run Code Online (Sandbox Code Playgroud)

但是,现在没有建立连接,所以我们遇到了错误.这仅在部署的站点上失败.通过Visual Studio运行显然不受影响.进行连接的代码没有任何变化.我愿意相信应该有变化,但我无法弄清楚它们应该是什么.

正在创建连接如下:

public class OurDataContext : DataContext
{
    public OurDataContext()
        : base(SessionCache.OurConnectionString)
    {
        ....
    }
 }
Run Code Online (Sandbox Code Playgroud)

SessionCache.OurConnectionString 是从数据库中读取的字符串.

UPDATE

连接字符串的更改可能是红色鲱鱼.我们只在一台Web服务器上遇到此故障(我无法直接访问该服务器).添加属性,通过另一台Web服务器所引用的数据库(即我访问)不会重现该问题.这使我得出结论,错误在其他地方.但是,我仍然没有接近解决这个问题.

实际错误是一个例外:

An exception of type 'System.ServiceModel.DomainServices.Client.DomainOperationException' occurred and was caught.
------------------------------------------------------------------------------------------------------------------
01/31/2012 14:18:53  
Type : System.ServiceModel.DomainServices.Client.DomainOperationException, System.ServiceModel.DomainServices.Client, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Message : Load operation failed for query 'GetUserSecurityConfig'. The …
Run Code Online (Sandbox Code Playgroud)

c# silverlight connection-string wcf-ria-services

9
推荐指数
1
解决办法
1562
查看次数

使用SqlConnectionStringBuilder指定端口?

我遇到了麻烦.我需要为本地安装的SQL Server 2008 R2指定端口号.到目前为止,我已经尝试使用SqlConnectionStringBuilder并将数据源设置为.\TESTSERVER, 1433,所有文档都应该将我连接到端口1433上的服务器TESTSERVER(默认值).

连接字符串如下所示:

{Data Source=".\TESTSERVER, 1433";Initial Catalog=AdventureWorks;User ID=testuser;Password=MYPASSWORDHERE}

但是我收到的错误如下:

建立连接SQL Server时发生网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确以及SQL Server是否配置为允许远程连接.(提供者:TCP提供者,错误:0 - 无法建立连接,因为目标计算机主动拒绝它.

在使用SqlConnectionStringBuilder.ToString()它验证连接字符串时,几乎可以看出MSDN的建议.由于某种原因,它仅包含数据源周围的双引号而不包含任何其他内容.但是,这可能只是调试器删除外部引号,因为它存储在string数据类型中.我还验证了SQL服务器是可以访问的,而无需指定端口,它是.最后,我验证了服务器可以接受远程连接.考虑到这个SQL Server实例是在本地安装的,使用默认端口,在我的开发计算机上,我无法想象为什么我会收到这样的错误.

这是因为SqlConnectionStringBuilder是用它自己的端口覆盖我的端口吗?我是否需要出于某种原因在我的防火墙上打开端口?知道它是完全本地安装,它不应该遇到防火墙问题.我宁愿不必手动构建连接字符串.并不是说它很难,它只是给我的代码增加了一层复杂性,除非需要,否则我不愿意.

任何帮助,将不胜感激.谢谢!

编辑:

经过SqlConnectionStringBuilder语法的长时间艰难挖掘后,它似乎通过传递给引号中包含的连接字符串来处理无效参数.我想这是因为它破坏了连接串.我的问题仍然存在:有没有办法通过SqlConnectionStringBuilder传递端口,还是我必须自己构建它?

c# sql-server connection-string database-connection sql-server-2008-r2

9
推荐指数
2
解决办法
1万
查看次数

OracleConnection.Open正在抛出ORA-12541 TNS没有监听器

所以我通过C#连接到外部服务器.我刚刚在我的机器上安装了Oracle 11g客户端:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html(255MB one).

在阅读了很多博客/问题后,我发现这篇文章很有用:

http://dbaspot.com/oracle-faq/444787-ora-12541-tns-no-listener.html

这是正确的吗?我什么都做不了.DBA必须编辑LISTENER.ORA文件?

我的tnsnames.ora看起来像这样:

  TestingConnect=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = TestHostName.us.local)(PORT = 1523))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TEST)
    )
  )
Run Code Online (Sandbox Code Playgroud)

这让我犯了错误:

Oracle.DataAccess.Client.OracleConnection connection = new Oracle.DataAccess.Client.OracleConnection();

connection.ConnectionString = "Data Source=TestHostName.us.local;Persist Security Info=True;" + "User ID=tesName;Password=test";

connection.Open() //Throwing ERR!!!
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我感谢任何评论.谢谢!

c# oracle connection-string database-connection oracle11g

9
推荐指数
2
解决办法
3万
查看次数

检索并使用Windows Azure的连接字符串?

我在Azure管理门户配置 - >连接字符串(链接资源)中配置了连接字符串:

在此输入图像描述

这些连接字符串对什么有用?

我试着删除conn.来自web.config文件的字符串,所以应该从这里读取,但事实并非如此.

还有其他方法吗?

基本上我希望这些连接字符串覆盖web.config中的连接字符串以在生产环境中使用.

我在方法中添加了以下内容Application_Start:

var sb = new StringBuilder();
var appConfig = ConfigurationManager.OpenMachineConfiguration();  
foreach (ConnectionStringSettings conStr in appConfig.ConnectionStrings.ConnectionStrings)
  sb.AppendFormat("Name: {0}, ConnectionString: {1}\n", conStr.Name, conStr.ConnectionString);
throw new Exception(sb.ToString());
Run Code Online (Sandbox Code Playgroud)

这是结果:

名称:LocalSqlServer,ConnectionString:data source =.\ SQLEXPRESS; Integrated Security = SSPI; AttachDBFilename = | DataDirectory | aspnetdb.mdf; User Instance = true

我也尝试了以上,ConfigurationManager.ConnectionStrings服务器(Azure)连接字符串不存在.

c# connection-string web-config azure

9
推荐指数
1
解决办法
7667
查看次数

如何在代码中添加实体框架6提供程序?

我在C#应用程序中使用Entity Framework 6,它完美地运行.创建Model时,将生成app.config并具有所有必需的配置.现在我不喜欢app.config中的东西,所以我使用连接字符串构建器.我成功地删除了app.config文件中的所有内容,除了以下内容:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)

如果我删除它,它不起作用.那么如何将该配置转换为c#代码?我该怎么办?我查看了基于代码的配置(http://msdn.microsoft.com/en-us/data/jj680699)但是,它没有帮助.

我创建连接字符串的部分类看起来像这样:

public partial class LogEntities
    {
        public LogEntities(string serverName)
            : base(GetConnectionString(serverName))
        {
        }

        public static string GetConnectionString(string serverName)
        {
            // Specify the provider name, server and database.
            const string databaseName = "_LOG";

            // Initialize the connection string builder for the underlying provider.
            SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder
            {
                DataSource = serverName,
                InitialCatalog = databaseName,
                IntegratedSecurity = true,
                MultipleActiveResultSets = true
            }; …
Run Code Online (Sandbox Code Playgroud)

c# connection-string entity-framework-6

9
推荐指数
1
解决办法
2万
查看次数

如何将CommandTimeout添加到web.config中的连接字符串

如何将CommandTimeout添加到web.config中的连接字符串?

我试过了:

<add name="ConnectionString" connectionString="Data Source=;Initial Catalog=;Persist Security Info=True;User ID=sa;Password=sa@123;Connect Timeout=200" providerName="System.Data.SqlClient"/>

</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

还有这个:

<add name="MyProject.ConnectionString"  
         connectionString="Data Source=127.0.0.1;Initial Catalog=MyDB;Persist Security Info=True;CommandTimeout=60;User ID=sa;Password=saPassw0rd"
         providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

但它并没有为我工作.

谢谢

connection-string timeout web-config connection-timeout

9
推荐指数
2
解决办法
5万
查看次数

对于SQL Server的Flyway连接字符串的正确语法是什么?

在远程计算机上运行SQL Server 2012 Express,尝试启动并运行Flyway.我有一个pcesqldev.pce.local被调用的数据库Hawk(dbo.Hawk,如果这很重要)我要连接到,并且配置文件中的模板如下所示:

SQL Server        : jdbc:jtds:sqlserver://<host>:<port>/<database>
Run Code Online (Sandbox Code Playgroud)

请注意,这与我与其他产品一起使用的其他jdbc连接字符串不同 - 其中大部分都不包含jtds部分,并且包含实例名称.

这是我尝试过的一些连接字符串,所有连接字符串都失败了:

我错过了什么?必须有一些明显的东西,但我看不到它.

在任何人问之前,是的,我们确实启用了对数据库的TCP访问,并且它正在使用端口1433.

connection-string flyway sql-server-2012

9
推荐指数
2
解决办法
4774
查看次数

实体框架6以编程方式连接到Postgres

我正在使用Entity Framework 6以编程方式建立与PostgresSQL的连接.我有这个类:

public class ClearspanDatabaseContext : DbContext
Run Code Online (Sandbox Code Playgroud)

使用此构造函数:

public ClearspanDatabaseContext()
    : base(buildConnectionString())
{
}
Run Code Online (Sandbox Code Playgroud)

这是以编程方式创建连接字符串的静态方法:

private static string buildConnectionString()
{
    RegisterDbProvider("Npgsql", ".Net Framework Data Provider for Postgresql", "Npgsql Data Provider", "Npgsql.NpgsqlFactory, Npgsql");
    EntityConnectionStringBuilder entityConnectionStringBuilder = new EntityConnectionStringBuilder();
    entityConnectionStringBuilder.Provider = "Npgsql";
    entityConnectionStringBuilder.ProviderConnectionString = "host=192.168.168.140;Port=5432;username=ClearspanDevLogin;password=*******;database=ClearspanWebServerDev";
    return entityConnectionStringBuilder.ToString();
}
Run Code Online (Sandbox Code Playgroud)

这里是将Npgsql注册为数据库提供程序的方法,取自此:

public static bool RegisterDbProvider(string invariant, string description, string name, string type)
{
    try
    {
        DataSet ds = ConfigurationManager.GetSection("system.data") as DataSet;
        foreach (DataRow row in ds.Tables[0].Rows)
        {
            if (row["InvariantName"].ToString() == invariant) …
Run Code Online (Sandbox Code Playgroud)

entity-framework connection-string database-connection npgsql entity-framework-6

9
推荐指数
1
解决办法
2698
查看次数