`
endual
  • 浏览: 3565538 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

C# 连接SQL Server数据库的几种方式--server+data source等方式(转)

    博客分类:
  • .net
 
阅读更多

 

SQ今天用SQL Server的Microsoft OLE DB提供程序和ODBC的Microsoft OLE DB提供程序两种不同的方法链接了一下SQL Server数据库,却发现了一个以前从来没有注意到的问题。

就是在使用conn.execute的时候:使用第一种方式是完全正常的,但是使用ODBC的方式却在某些情况下一些数据不能读取(或者说读取为空值),具体的原因不清楚,查了好久也没发现区别在哪里。后来还是用了第一种方式。

注:在SQL Server 2000和SQL Server 2005数据库下问题一样。

第一种:OLE DB或OleDbConnection (.NET)方式 
(使用SQL Server的Microsoft OLE DB提供程序)
Provider=sqloledb; Data Source=服务器IP; Initial Catalog=数据库名; User Id=用户名; Password=密码;


第二种:ODBC方式(使用ODBC的Microsoft OLE DB提供程序)
Driver={SQL Server}; Server=服务器IP; Database=数据库名; Uid=用户名; Pwd=密码;


第三种:DSN方式
DSN=DSN名; Uid=用户名; Pwd=密码;

第四种:SqlConnection(.NET)方式 
Data Source=服务器IP; Initial Catalog=数据库名; User ID=用户名; Password=密码;

 

 

C# 连接SQL Server数据库的几种方式--server+data source等方式

分类: C#基础 1544人阅读 评论(0) 收藏 举报
 

 如何使用Connection对象连接数据库?

对于不同的.NET数据提供者,ADO.NET采用不同的Connection对象连接数据库。这些Connection对象为我们屏蔽了具体的实现细节,并提供了一种统一的实现方法。

Connection类有四种:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection。

SqlConnection类的对象连接SQL Server数据库;OracleConnection 类的对象连接Oracle数据库;OleDbConnection类的对象连接支持OLE DB的数据库,如Access;而OdbcConnection类的对象连接任何支持ODBC的数据库。与数据库的所有通讯最终都是通过Connection对象来完成的。

SqlConnection类

Connection 用于与数据库“对话”,并由特定提供程序的类(如 SqlConnection)表示。尽管SqlConnection类是针对Sql Server的,但是这个类的许多属性、方法与事件和OleDbConnection及OdbcConnection等类相似。

注意:使用不同的Connection对象需要导入不同的命名空间。OleDbConnection的命名空间为System.Data.OleDb。SqlConnection的命名空间为System.Data.SqlClient。OdbcConnection的命名空间为System.Data.Odbc。OracleConnection的命名空间为System.Data.OracleClinet。

我们就可以使用如下两种方式连接数据库,即采用集成的Windows验证和使用Sql Server身份验证进行数据库的登录。

1、集成的Windows身份验证语法范例

string constr = "server=.;database=myschool;integrated security=SSPI";

说明:程序代码中,设置了一个针对Sql Server数据库的连接字符串。其中server表示运行Sql Server的计算机名,由于程序和数据库系统是位于同一台计算机的,所以我们可以用.(或localhost)取代当前的计算机名。database表示所使用的数据库名(myschool)。由于我们希望采用集成的Windows验证方式,所以设置 integrated security为SSPI即可。

2、Sql Server 2005中的Windows身份验证模式如下:

string constr = "server=.;database=myschool;uid=sa;pwd=sa";

说明:程序代码中,采用了使用已知的用户名和密码验证进行数据库的登录。数据库连接字符串是不区分大小写的。uid为指定的数据库用户名,pwd为指定的用户口令。为了安全起见,一般不要在代码中包括用户名和口令,你可以采用前面的集成的Windows验证方式或者对Web.Config文件中的连接字符串加密的方式提高程序的安全性。

3、Sql Server 2005中的Sql Server身份验证模式如下:

string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";

说明:程序代码中data source 表示运行数据库对应的计算机名,initial catalog表示所使用的数据库名。uid为指定的数据库用户名,pwd为指定的用户口令。

4、Access数据库的连接字符串的形式如下:

string connectionString =@"provider=Microsoft.Jet.OLEDB.4.0;data source=c:\DataSource\myschool.mdb";

说明:程序代码中,通过专门针对Access数据库的OLE DB提供程序,实现数据库的连接。这使用的的OLE DB提供程序为Microsoft.Jet.OLEDB.4.0,并且数据库存放在c:\DataSource目录下,其数据库文件为myschool.mdb。       

[csharp] view plaincopy
  1.  string constr = "server=.;database=myschool;integrated security=SSPI";  
  2.  //string constr = "server=.;database=myschool;uid=sa;pwd=sa";  
  3.  //string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";  
  4.  SqlConnection con = new SqlConnection(constr);  
  5. // con.ConnectionString = constr;  
  6.  string sql = "select count(*) from grade";  
  7.  SqlCommand com = new SqlCommand(sql,con);  
  8.  try  
  9.  {  
  10.      con.Open();  
  11.      MessageBox.Show("成功连接数据库");  
  12.      int x = (int)com.ExecuteScalar();  
  13.      MessageBox.Show(string.Format("成功读取{0},条记录", x));  
  14.  }  
  15.  catch (Exception)  
  16.  {  
  17.   
  18.      throw;  
  19.  }  
  20.  finally  
  21.  {  
  22.      con.Close();  
  23.      MessageBox.Show("成功关闭数据库连接""提示信息", MessageBoxButtons.YesNoCancel);  
  24.  }  


5、Web.config 配置

在ASP.NET 2.0中,使用了一种在运行时解析为连接字符串值的新的声明性表达式语法,按名称引用数据库连接字符串。连接字符串本身存储在 Web.config 文件中的 <connectionStrings>配置节下面,以便易于在单个位置为应用程序中的所有页进行维护。

[csharp] view plaincopy
  1. <?xml version="1.0"?>  
  2. <configuration>  
  3. <connectionStrings>  
  4. <add name="myschool" connectionString="Server=localhost;Integrated Security=True;Database=myschool;Persist Security Info=True" providerName="System.Data.SqlClient" />  
  5. </connectionStrings>  
  6. <system.web>  
  7. <pages styleSheetTheme="Default"/>  
  8. </system.web>  
  9. </configuration>  

我们也可以用下面的方式从配置文件直接读取数据库连接字符串。首先我们需要引用using System.Web.Configuration命名空间,该命名空间包含用于设置 ASP.NET 配置的类。string connectionString =ConfigurationManager.ConnectionStrings["myschool"].ConnectionString;

首先你应该区分Windows验证与Sql自身的验证的区别。  
  Windows验证就是SqlServer服务器使用Windows自带的验证系统,如果你指定SqlServer内Windows的一个组有访问的权限,那么加入此组的Windows用户都有访问数据库的权限。此验证有个缺点,就是如果不是在域模式下,无法加入远程计算机的用户,所以如果使用C/S方式写程序的话,使用Windows验证无法使本地计算机的Windows帐户访问远程数据库服务器。  
   
  Sql验证就简单多了,就是使用sqlserver的企业管理器中自己定义由Sql控制的用户,指定用户权限等。这个帐户信息是由SqlServer自己维护的,所以SqlServer更换计算机后信息不会丢失,不用重新设定。  
   
  所以如果你的项目使用在一个比较大的网络中,而且对安全要求比较高,那么应该建立域,使用Windows验证,而且要与系统管理员配合详细设定可以访问SqlServer的Windows帐户。如果使用一个小网络,而且此网络仅用来使用项目,对安全没有高要求,那么使用SqlServer验证,而且更新,升级等都方便。  
   
  Windows验证与SqlServer验证的数据库联接字符串是不同的。

分享到:
评论

相关推荐

    C#连接SQLServer数据库

    本主题将深入探讨如何使用C#连接到SQL Server数据库,并执行基本的数据操作,如增、删、改。 首先,要理解C#连接SQL Server数据库的核心组件是ADO.NET,它是.NET Framework的一部分,提供了与各种数据库进行交互的...

    C#实现异步连接Sql Server数据库的方法

    总的来说,C#的`async`和`await`关键字提供了一种优雅的方式来实现与SQL Server数据库的异步连接,这对于处理I/O密集型操作,如数据库交互,是非常理想的。通过这种方式,开发者可以编写出更加流畅、高效的代码,...

    C# 开发SQLSERVER数据库自动建表

    在实现这个功能时,首先需要理解C#中如何连接到SQL Server数据库。这通常通过ADO.NET库来完成,使用`SqlConnection`类建立连接,然后使用`SqlCommand`类执行SQL语句。例如: ```csharp using System.Data.SqlClient...

    C#连接SQL server数据库实例(含说明文档)

    在本教程中,我们将深入探讨如何使用C#编程语言连接到SQL Server数据库,以及如何创建一个简单的可视化界面来与数据库进行交互。这个压缩包提供的资源包括一个说明文档和实际的程序代码,使得初学者能够根据步骤操作...

    C# 连接SQL server 数据库

    下面我们将详细讨论如何使用C#连接到SQL Server数据库,以及如何执行基本的数据库操作。 1. **建立连接**: 在C#中,我们使用`SqlConnection`类来建立与SQL Server的连接。首先,我们需要一个连接字符串,该字符串...

    c# 模拟sql server数据库(对DataGridView的操作)

    在本教程中,我们将聚焦于如何使用C#模拟SQL Server数据库,并结合DataGridView控件来展示数据。首先,我们需要理解几个核心概念: 1. **C#**:这是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows应用...

    C#与sqlserver数据库操作_附实例说明及sql语句大全

    本篇将详细介绍C#如何与SQL Server数据库进行连接,并探讨基本的SQL语句,包括增、删、改、查等操作。 首先,建立C#与SQL Server数据库的连接是所有操作的基础。这通常通过ADO.NET框架中的SqlConnection类来实现。...

    C#连接SqlServer数据库

    C#是一种广泛用于构建桌面、Web和移动应用的强类型、面向对象的语言,而SQL Server是微软公司提供的一种关系型数据库管理系统,它在企业级数据存储和管理中扮演着重要角色。了解如何将这两者结合使用对于开发人员来...

    C#Winform基于SQL Server的网络连接数据库和本地连接,实现增删改查(内附数据库查询语句以及数据库配置,适合新手)

    在本文中,我们将深入探讨如何使用C# Winform与SQL Server进行网络连接和本地连接,以便实现数据库的增删改查操作。对于初学者来说,理解这些基本概念和步骤至关重要,因为它们构成了大部分企业级应用的数据管理基础...

    C#操作SQLServer数据库

    C#操作SQL Server数据库涉及到多个方面,包括连接数据库、执行SQL命令、数据处理等,本文将详细讲解这些操作的具体步骤和方法。 首先,C#程序与SQL Server数据库进行交互,需要使用合适的数据提供者(Data Provider...

    C# 连接SQL SERVER例子

    当我们需要在C#应用程序中与SQL Server进行交互时,通常会用到ADO.NET库,它提供了连接数据库、执行SQL命令、获取结果集等功能。 本文将深入讲解如何使用C#连接SQL Server,并通过一个简单的实例来展示这一过程。 ...

    c#备份sqlserver数据库.zip

    使用C#进行SQL Server数据库的备份是一个常见的需求,特别是在开发自动化备份解决方案时。本文将深入探讨如何利用C#语言来实现SQL Server数据库的备份操作。 首先,我们需要理解C#中的ADO.NET,这是一个用于与...

    C#连接sql数据库执行简单的增删改查操作

    C#连接sql数据库执行简单的增删改查操作是一种非常基本却非常重要的数据库操作技术。本文将讲解如何使用C#语言连接sql数据库,并执行简单的增删改查操作。 在执行数据库操作之前,首先需要在VS2005中引入using ...

    quartz实例sqlserver数据库连接

    在“quartz实例sqlserver数据库连接”这个主题中,我们主要讨论如何配置Quartz与SQL Server数据库进行交互,以存储和管理调度信息。 首先,Quartz需要一个持久化存储来保存作业(Jobs)和触发器(Triggers)的信息...

    Unity连接SqlServer数据库库文件

    2. **ADO.NET**:ADO.NET是Microsoft提供的一个用于访问数据库的组件,包括System.Data.SqlClient命名空间,其中包含SqlConnection、SqlCommand、SqlDataAdapter等类,它们是连接和操作SQL Server数据库的基础。...

    C#连接sqlserver实现登录注册

    使用C#中的`System.Data.SqlClient`命名空间,创建`SqlConnection`对象来连接到SQL Server。你需要提供正确的连接字符串,其中包含服务器名称、数据库名、用户名和密码。例如: ```csharp string ...

    asp.net(C#) 连接SQLSERVER数据库视频教程

    在本教程中,我们将深入探讨如何使用ASP.NET(C#)连接到SQL Server数据库,这对于任何想要进行Web开发的人来说都是至关重要的技能。 首先,我们需要了解SQL Server数据库管理系统,它是微软的一款强大的关系型...

    C#.NET连接各类数据库(全)Oracle MySQL ACCESS SQLSERVER

    概述:本文将详细介绍 C#.NET 连接各种数据库的机制,包括 Oracle、MySQL、ACCESS、SQL Server 等。通过了解连接不同数据库的方法和参数,我们可以更好地应用 C#.NET 在数据库开发中。 一、C# 连接 SQL Server ...

Global site tag (gtag.js) - Google Analytics