首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

分享一下你喜欢如何连接数据库

2012-02-01 
分享一下你喜欢怎么连接数据库?看asp.net连接数据库的时候,发现有好几种方式都可以实现,我知道的有两种方

分享一下你喜欢怎么连接数据库?
看asp.net连接数据库的时候,发现有好几种方式都可以实现,我知道的有两种方法,不知道还有没有其他的方法,大家都喜欢怎么用,希望都说出来分享一下。

目前我理解的两种方法是:
1、创建一个DB.cs的文件,定义一个可返回的public   static   createconnection()方法,放在App_code文件夹中,然后用的时候直接直接调用,返回连接字符串。
2、用数据源控件,写入web.config连接字符串,然后当需要使用数据源控件的web控件用的时候,直接返回连接字符串。
3、当然还可以每次需要用数据库的时候创建一次,不过好像没人这样吧,写的时候,修改的时候都很烦啊。

不知我理解的对不对,大家还有什么好的方法,你们都喜欢什么方式。
这应该属于习惯的问题吧,呵呵。
希望大家多多分享...

[解决办法]
.NET(C#)连接各类数据库集锦

1.C#连接连接Access
程序代码:
------------------------------------------- using System.Data;
using System.Data.OleDb;
..

string strConnection= "Provider=Microsoft.Jet.OleDb.4.0; ";
strConnection+=@ "Data Source=C:BegASPNETNorthwind.mdb ";

OleDbConnection objConnection=new OleDbConnection(strConnection);
..

objConnection.Open();
objConnection.Close();
--------------------------------------------

解释:

 连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!

 strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源.

  "Provider=Microsoft.Jet.OleDb.4.0; "是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,asp.net就是靠这个和Access的数据库连接的.

  "Data Source=C:\BegASPNET\Northwind.mdb "是指明数据源的位置,他的标准形式是 "Data Source=MyDrive:MyPath\MyFile.MDB ".

PS:
 1. "+= "后面的 "@ "符号是防止将后面字符串中的 "\ "解析为转义字符.
 2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:
  strConnection+= "Data Source= ";
  strConnection+=MapPath( "Northwind.mdb ");
  这样就可以省得你写一大堆东西了!
 3.要注意连接字符串中的参数之间要用分号来分隔.

  "OleDbConnection objConnection=new OleDbConnection(strConnection); "这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道.

  "objConnection.Open(); "这用来打开连接.至此,与Access数据库的连接完成.
--------------------------------------------

2.C#连接SQL Server
程序代码:
--------------------------------------------

using System.Data;
using System.Data.SqlClient;
..

string strConnection= "user id=sa;password=; ";
strConnection+= "initial catalog=Northwind;Server=YourSQLServer; ";
strConnection+= "Connect Timeout=30 ";

SqlConnection objConnection=new SqlConnection(strConnection);
..

objConnection.Open();
objConnection.Close();
--------------------------------------------

解释:

连接SQL Server数据库的机制与连接Access的机制没有什么太大的区别,只是改变了Connection对象和连接字符串中的不同参数.

首先,连接SQL Server使用的命名空间不是 "System.Data.OleDb ",而是 "System.Data.SqlClient ".

其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):
  "user id=sa ":连接数据库的验证用户名为sa.他还有一个别名 "uid ",所以这句我们还可以写成 "uid=sa ".
  "password= ":连接数据库的验证密码为空.他的别名为 "pwd ",所以我们可以写为 "pwd= ".
 这里注意,你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要使用 "user id "和 "password "这样的方式来登录,而需要使用 "Trusted_Connection=SSPI "来进行登录.
  "initial catalog=Northwind ":使用的数据源为 "Northwind "这个数据库.他的别名为 "Database ",本句可以写成 "Database=Northwind ".
  "Server=YourSQLServer ":使用名为 "YourSQLServer "的服务器.他的别名为 "Data Source ", "Address ", "Addr ".如果使用的是本地数据库且定义了实例名,则可以写为 "Server=(local)\实例名 ";如果是远程服务器,则将 "(local) "替换为远程服务器的名称或IP地址.
  "Connect Timeout=30 ":连接超时时间为30秒.

 在这里,建立连接对象用的构造函数为:SqlConnection.
--------------------------------------------



3.C#连接Oracle
程序代码:
--------------------------------------------


using System.Data.OracleClient;
using System.Data;

//在窗体上添加一个按钮,叫Button1,双击Button1,输入以下代码
private void Button1_Click(object sender, System.EventArgs e)
{
string ConnectionString= "Data Source=sky;user=system;password=manager; ";//写连接串
OracleConnection conn=new OracleConnection(ConnectionString);//创建一个新连接
try
{
conn.Open();
OracleCommand cmd=conn.CreateCommand();

cmd.CommandText= "select * from MyTable ";//在这儿写sql语句
OracleDataReader odr=cmd.ExecuteReader();//创建一个OracleDateReader对象
while(odr.Read())//读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了
{
Response.Write(odr.GetOracleString(1).ToString());//输出字段1,这个数是字段索引,具体怎么使用字段名还有待研究
}
odr.Close();
}
catch(Exception ee)
{
Response.Write(ee.Message); //如果有错误,输出错误信息
}
finally
{
conn.Close(); //关闭连接
}
}
-------------------------------------------

4.C#连接MySQL
程序代码:
--------------------------------------------

using MySQLDriverCS;

// 建立数据库连接
MySQLConnection DBConn;
DBConn = new MySQLConnection(new MySQLConnectionString( "localhost ", "mysql ", "root ", " ",3306).AsString);
DBConn.Open();

// 执行查询语句
MySQLCommand DBComm;
DBComm = new MySQLCommand( "select Host,User from user ",DBConn);

// 读取数据
MySQLDataReader DBReader = DBComm.ExecuteReaderEx();

// 显示数据
try
{
while (DBReader.Read())
{
Console.WriteLine( "Host = {0} and User = {1} ", DBReader.GetString(0),DBReader.GetString(1));
}
}
finally
{
DBReader.Close();
DBConn.Close();
}

//关闭数据库连接
DBConn.Close();
--------------------------------------------

5.C#连接IBM DB2


摘自:http://www.51aspx.com/CT/MEKHLSHZOR083/
[解决办法]
EnterpriseLibrary

[EnterpriseLibrary]EnterpriseLibrary.Common.Configuration文件中的各个类 EnterpriseLibary主要是针对中大型企业级项目,但是在一些小企业项目中我们也能够运用。在运用的时候我们可以简化一些模块,对于一些应用程序块中我们不需要的可以去掉,从而实现在小项目中也能很好的应用而不至于显得大材小用。举个例子在Microsoft.Practices.EnterpriseLibrary.Data应用程序块中,Database类就是一个比较全面的DataHelper类,我们可以改变配置和工厂的方法从而减小类库尔应用于我们的小项目中,同时我们也可以增加对数据库Access的扩展。要做到这一步,首先当然要对整个项目有所了解,其中每个应用程序块都会包含的一个就是Microsoft.Practices.ObjectBuilder(这个已经独立一个项目),另一个就是核心通用类库Common,主要包括配置,以及对ObjectBuilder的扩展等,今天我们先来熟悉一下Configuration命名空间下的一些文件中类关系和用途...

对于每一个应用程序来说,配置文件是最重要的一块,而在EnterpriseLibrary中队配置文件的写入一块一大部分都有他自带的一个tool来完成,在每个应用程序块中的Design就是来完成这项工作;而在每个项目中我们都会看到有一个Configuration文件夹,这个是用于该应用程序块对配置文件的管理类;还有一个是Instrumentation文件夹,主要包含的是事件以及事件监听类等。这也是EnterpriseLibrary中的总体结构,每个应用程序块都采用这种结构(架构)进行开发,所以只要弄懂了一个应用程序块其他的也就迎刃而解了。

在Microsoft.Practices.EnterpriseLibrary.Common.Configuration项目中我们主要看看他对配置文件的读写的扩展;在配置文件中主要涉及的是一个节点(ConfigurationSection)和元素(ConfigurationElement)企业库都对其进行了扩展。

SerializableConfigurationSection : ConfigurationSection, IXmlSerializable类继承可以看出是对ConfigurationSection的扩展,而每个应用程序块的配置节点都必须继承自此类,此类主要包括了对XML文件节点的操作方法;

ConfigurationSourceSection : SerializableConfigurationSection此类是 "配置文件 "节点的扩展,也就是说你的项目的配置文件所对应的配置节点,在EL中包含两个配置文件(File和System);

NamedConfigurationElement : ConfigurationElement, IObjectWithName这个类我们可以看出是包含 "name "属性的元素的扩展,其中IObjectWithName包含一个属性就是Name,所以这个扩展是元素中包含Name属性的扩展;

NameTypeConfigurationElement : NamedConfigurationElement, IObjectWithNameAndType上面对Name属性元素的扩展,而这个类有对其进行了扩展,包含了Type属性,当然IObjectWithNameAndType也就包含了Type(类型)属性;



ConfigurationSourceElement : NameTypeConfigurationElement对上述的类进行了扩展从而获取了配置源中的元素,这个ConfigurationSourceSection相对应,在EL中包含两个配置源(File和System);

下面来看看配置源接口IConfigurationSource,这个接口包含了很重要的方法,节点的获取以及节电的增删和改变所触发事件的处理等,这个文件中还包含了一个IConfigurationParameter接口,主要用于配置参数;

FileConfigurationSource : IConfigurationSource, IProtectedConfigurationSource是对配置源的一个扩展,由于EL支持加密所以也实现了IProtectedConfigurationSource接口,以实现对加密的操作 <可能不是这样的> ,这个配置源主要是非Web.config/App.config的自定义配置文件;

SystemConfigurationSource : IConfigurationSource 这个配置源市系统默认的配置文件(Web.config/App.config);

从上面就可以看出El对配置可是下了以点功夫的,对每一个种族的扩展都对应着System和File两种,当然对配置类的扩展当然也要对相应的集合的扩展: NamedElementCollection <T> : ConfigurationElementCollection, IEnumerable <T> 为包含Name属性的集合,PolymorphicConfigurationElementCollection <T> : NamedElementCollection <T> 对add元素的集合,NameTypeConfigurationElementCollection <T> : PolymorphicConfigurationElementCollection <T> 也就是说包含Key/Value对的集合。

有了这些东西我们就可以对操作的方法进一步了解,下一步我们将我做的就是查看一下整个配制文件的执行顺序以及它是怎样贯穿整个企业库的,今天就写到这里了,希望对刚刚步入EL的同志们有所帮助!


热点排行