SQLServer2005数据库连接字符串(转载)

SQL Server 2005 连接字符串详解
本文详细介绍了使用SQL Native Client ODBC Driver、OLE DB Provider和SqlConnection (.NET) 连接到SQL Server 2005的各种方式,包括标准连接、受信连接、指定实例、附加数据库文件等,并涉及到数据库镜像和MARS(Multiple Active Result Sets)的配置。特别提到了针对SQL Server 2005 Express的连接字符串设定。

SQL Native Client ODBC Driver
 
标准安全连接
   
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
 
您是否在使用SQL Server 2005 Express? 请在“Server”选项使用连接表达式“主机名称/SQLEXPRESS”。 
  
受信的连接
   
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
 
"Integrated Security=SSPI" 与 "Trusted_Connection=yes" 是相同的。
  
连接到一个SQL Server实例
指定服务器实例的表达式和其他SQL Server的连接字符串相同。  
Driver={SQL Native Client};Server=myServerName/theInstanceName;Database=myDataBase;Trusted_Connection=yes;
 
   
指定用户名和密码
oConn.Properties("Prompt") = adPromptAlways

Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;
 
   
使用MARS (multiple active result sets)
   
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MARS_Connection=yes;
 
"MultipleActiveResultSets=true"与MARS_Connection=yes"是相同的。
使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0和ADO.NET 1.1。
  
验证网络数据
   
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;
 
   
使用附加本地数据库文件的方式连接到本地SQL Server Express实例
   
Driver={SQL Native Client};Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。 
  
使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例
   
Driver={SQL Native Client};Server=./SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
数据库镜像
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
 
 
  
SQL Native Client OLE DB Provider
 
标准连接
   
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
 
您是否在使用SQL Server 2005 Express? 请在“Server”选项使用连接表达式“主机名称/SQLEXPRESS”。 
  
受信的连接
   
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
 
"Integrated Security=SSPI"与"Trusted_Connection=yes"相同
  
连接到SQL Server实例
指定服务器实例的表达式和其他SQL Server的连接字符串相同。  
Provider=SQLNCLI;Server=myServerName/theInstanceName;Database=myDataBase;Trusted_Connection=yes;
 
   
使用帐号和密码
oConn.Properties("Prompt") = adPromptAlways

oConn.Open "Provider=SQLNCLI;Server=myServerAddress;DataBase=myDataBase;
 
   
使用MARS (multiple active result sets)
   
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MarsConn=yes;
 
"MultipleActiveResultSets=true"和"MARS_Connection=yes"是相同的。
使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0和ADO.NET 1.1。
  
验证网络数据
   
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;
 
   
使用附加本地数据库文件的方式连接到本地SQL Server Express实例
   
Provider=SQLNCLI;Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例
   
Provider=SQLNCLI;Server=./SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
数据库镜像
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
 
 
  
SqlConnection (.NET)
 
标准连接
   
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
 
使用serverName/instanceName作为数据源可以指定SQL Server实例。
您是否在使用SQL Server 2005 Express? 请在“Server”选项使用连接表达式“主机名称/SQLEXPRESS”。 
  
Standard Security alternative syntax
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
 
   
受信任的连接
   
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 
   
Trusted Connection alternative syntax
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
 
   
连接到一个SQL Server的实例
指定服务器实例的表达式和其他SQL Server的连接字符串相同。  
Server=myServerName/theInstanceName;Database=myDataBase;Trusted_Connection=True;
 
   
来自WinCE设备的安全连接
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain/myUsername;Password=myPassword;
 
仅能用于CE设备。
  
带有IP地址的连接
   
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
 
 
  
使用MARS (multiple active result sets)
   
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;MultipleActiveResultSets=true;
 
使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0和ADO.NET 1.1。
  
使用附加本地数据库文件的方式连接到本地SQL Server Express实例
   
Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例
   
Server=./SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
使用在SQL Server Express实例上的用户实例
Data Source=./SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|/mydb.mdf;User Instance=true;
 
数据库镜像
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
 
Asynchronous processing
Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;
 


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/jyh_jack/archive/2008/04/07/2257512.aspx

<think>嗯,用户想了解如何在C#应用程序中使用配置文件存储连接字符串,并通过依赖注入获取它。具体来说,他们想用IConfiguration从appsettings.json获取SQL Server连接字符串,并通过构造函数注入到DbContext里。首先,我得回忆一下相关的步骤和组件。 首先,ASP.NET Core的配置系统默认使用appsettings.json文件,用户需要在那里添加连接字符串。然后,在Startup或者Program类中配置DbContext服务,使用AddDbContext方法,并传递连接字符串。这里可能需要使用IConfiguration来获取配置的值。 我记得在ConfigureServices方法中,通常会用Configuration.GetConnectionString来获取连接字符串。比如,引用[1]中的例子,他们用var ConnectionString = Configuration.GetConnectionString("SouthwindDatabase");然后传递给AddDbContext。这一步是正确的,但用户可能需要更详细的步骤。 然后,DbContext的子类需要在构造函数中接收DbContextOptions参数,这样依赖注入才能正确注入配置。比如,在SouthwindContext的构造函数中应该有一个接受DbContextOptions<SouthwindContext>参数的构造函数,并传递给基类构造函数。这部分用户可能需要确认他们的DbContext是否设置正确。 另外,关于依赖注入容器的替换,比如使用Autofac,如引用[2]提到的,需要替换容器工厂,但用户的问题可能不需要这个,除非他们有特殊需求。不过用户的问题中没有提到Autofac,所以可能不需要涉及这部分内容,但可能需要确认是否需要额外的配置。 还有,包版本的问题,引用[3]提到使用8.x版本的Entity Framework Core包,用户需要确保他们的项目引用了正确的NuGet包,比如Microsoft.EntityFrameworkCore.SqlServer,版本要匹配。 可能的步骤总结: 1. 在appsettings.json中添加连接字符串。 2. 在Program.cs或Startup.cs中配置DbContext服务,使用IConfiguration获取连接字符串。 3. 确保DbContext的构造函数正确接收DbContextOptions。 4. 在控制器或其他服务中通过构造函数注入DbContext。 需要检查用户是否遗漏了任何步骤,比如是否调用了AddDbContext的正确重载,或者是否在DbContext中正确设置构造函数。此外,确保项目文件引用了必要的NuGet包,如Microsoft.EntityFrameworkCore.SqlServer。 用户的问题还可能涉及到环境变量或不同环境的配置,比如appsettings.Development.json,但问题中没有提到,可能需要简单提及。同时,连接字符串的名称是否与GetConnectionString的参数匹配,这也是常见的错误点。 最后,用户可能需要一个示例代码来展示整个过程,包括配置文件、服务注册和DbContext的构造函数。这有助于他们对照自己的代码进行检查。</think>在C#应用程序中通过`IConfiguration`获取连接字符串并注入`DbContext`的实现步骤如下: --- ### 1. 配置连接字符串 在`appsettings.json`中添加SQL Server连接字符串: ```json { "ConnectionStrings": { "YourDatabase": "Server=.;Database=YourDB;User Id=sa;Password=123;TrustServerCertificate=True;" } } ``` --- ### 2. 注册DbContext服务 在`Program.cs`中配置依赖注入(.NET 6+): ```csharp var builder = WebApplication.CreateBuilder(args); // 从配置文件中获取连接字符串 var connectionString = builder.Configuration.GetConnectionString("YourDatabase"); // 注册DbContext到依赖注入容器 builder.Services.AddDbContext<YourDbContext>(options => options.UseSqlServer(connectionString) ); ``` --- ### 3. 定义DbContext类 通过构造函数注入`DbContextOptions`: ```csharp public class YourDbContext : DbContext { public YourDbContext(DbContextOptions<YourDbContext> options) : base(options) { } // 添加DbSet<T>属性 public DbSet<User> Users { get; set; } } ``` --- ### 4. 在其他服务或控制器中使用 通过构造函数自动注入`YourDbContext`: ```csharp public class UserController : Controller { private readonly YourDbContext _context; public UserController(YourDbContext context) { _context = context; // 依赖注入自动传递已配置的DbContext实例 } public IActionResult Index() { var users = _context.Users.ToList(); return View(users); } } ``` --- ### 关键点说明 - **配置读取**:`builder.Configuration`默认会加载`appsettings.json`和环境变量,优先读取当前环境的配置文件(如`appsettings.Development.json`)[^1]。 - **依赖注入**:`AddDbContext`会将`DbContext`的生命周期默认设置为`Scoped`,确保每个请求使用独立的数据库连接[^2]。 - **包依赖**:需通过NuGet安装`Microsoft.EntityFrameworkCore.SqlServer`(与.NET版本匹配,如8.x)[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值