C#连接数据库

http://blog.csdn.net/guoquanyou/article/details/6861536

如何使用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 [email protected]"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. throw;
  18. }
  19. finally
  20. {
  21. con.Close();
  22. MessageBox.Show("成功关闭数据库连接", "提示信息", MessageBoxButtons.YesNoCancel);
  23. }

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验证的数据库联接字符串是不同的。

时间: 2024-10-09 11:55:42

C#连接数据库的相关文章

2017年9月3日 Spring及Mybatis中连接数据库的不同方式

连接数据库用spring和mybatis中使用的方法可以不同,mybaits可以不用写数据库的配置文件 Spring的连接方法 <!-- 读取属性文件(.properties)的内容 --> <!-- location:指定要读取的属性文件的位置及文件名. 注: classpath:表示依据类路径去查找 容器依据路径读取属性文件的内容, 并且将这些内容存放到Properties对象上 --> //数据库的登入数据文件 //文件名db.properties #db connectio

详解JDBC连接数据库

一.概念 1. 为了能让程序操作数据库,对数据库中的表进行操作,每一种数据库都会提供一套连接和操作该数据库的驱动,而且每种数据库的驱动都各不相同,例如mysql数据库使用mysql驱动,oracle数据库使用oracle驱动,这样假如我们编写的程序哪一天想要换数据库,那样就会很不方便,因为所有连接数据库的代码都要从新编写.SUN公司为了简化.统一对数据库的操作,定义了一套java操作数据库的标准或者规范,这个规范就是JDBC. 2.JDBC全称为:Java Data Base Connectiv

Eclipse通过jdbc连接数据库制作简单登陆界面

一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了,HTML/CSS+JS可以实现对界面的描绘渲染,而JAVA则可以做后台数据处理,XML也是可以当作传输数据的介质(思考:XML比HTML强大这么多,为什么它没能替代HTML?): 这篇文章通过简单的JSP文件实现登陆界面,所以只用到了以下技术: HTML/CSS,简单演示就不做CSS样式了,可自行学

hibernate连接数据库和反向工程

一.JSP界面连接数据库: 导包:将11个包倒进web-inf的lib目录下: 二.建立hibernate.cfg.xml的配置文件:!注意:是放到项目SRC目录下: 三.将视图切换到java下,在左上角项目中选"其他"选出:hibernate.console.configuration 进项配置: 四.配置反射文件:hibernate.reveng.xml !注意:是放到项目SRC目录下: 五.配置和生成实体类和反射文件: 完成!洗不洗 很简单

【转】Java开发中JDBC连接数据库代码和步骤总结

(转自:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html) JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("co

关于JavaEE项目连接数据库提示 Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)的解决方案

最近这三天,都在解决如下的问题:我MyEclipse中的JavaEE工程,运行之后就提示Access denied for user 'root'@'localhost' (using password: YES),当我用一个Java文件连接MySQL数据库时,没有任何问题.于是我在网上找了一些解决方案: (1)让root给当前用户授予增删改查的权限:grant select,insert,update,delete on *.* to 用户名@"%" Identified by &q

关于在VS平台下连接数据库mdf文件的问题解决

问题征兆1:当你的机器上已经安装了SQL2008和VS2010后,在VS上连接数据库源文件时,它总是提示你一个错误:缺少数据库组件,无法成功连接,需要你重新安装SQLexpress: 问题征兆2:直接上图吧 当你试图对这个数据库进行刷新时,它给你弹出一个错误提示框,示例如下: 问题征兆3:当你试图通过工具选项中的连接数据库操作来连接数据库源文件时它提示你这样的错误消息,示例如下: 经历了上述种种错误的打击后你是否依然寻找着新的解决方案呢?你是否还是不屈不挠呢,反正我是对自己挺无语的! 解决方案简

动态代理连接数据库

package 动态连接数据库; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.sql.Connection; import java.sql.DriverManager; import java.util.LinkedList; public class UtilsDB { public static

C#_连接数据库实现 登录注册界面

//编写登录界面逻辑 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClie

JDBC连接数据库的几种方法与简单解析

首先要知道jdbc:使用Java代码发送sql语句的技术就是jdbc技术.即jdbc是一个接口,用于不同的数据库(oracle.mysql.sqlserver..)的操作.使用jdbc发送sql语句的前提: 登录数据库服务器(连接数据库服务器) 数据库的IP地址 端口 数据库用户名 密码 JDBC的URL=协议名+子协议名+数据源名. a 协议名总是"jdbc". b 子协议名由JDBC驱动程序的编写者决定. c 数据源名也可能包含用户与口令等信息:这些信息也可单独提供. 几种常见的数