它山之石可以攻玉

键盘上的生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

怎样使用ADO.NET连接不同的数据源

Posted on 2007-03-15 10:41  陈达辉  阅读(519)  评论(0编辑  收藏  举报

使用ADO.NET可以连接SQL Server,Access,Excel,XML等数据库,首先创建连接,然后使用连接.使用时先打开连接,然后使用,最后记得要关闭连接.下面分别介绍一下:
1.连接SQL Server
需要using System.Data;和using System.Data.SqlClient;两个命名空间.从创建到使用完整代码:

  string strConnection="server=(local);database=YourDatabase;integrated security=true;";
  //若你的数据库服务器使用混合模式验证则用
  //string strConnection="server=(local);database=YourDatabase;user id=sa;password=123456;";
  //string strConnection="server=(local);database=YourDatabase;uid=sa;pwd=123456;";
  
  SqlConnection con=new SqlConnection(strConnection);//创建连接
  
  string strSql="SELECT FirstName,LastName,Country FROM Employees";
  SqlCommand cmd=new SqlCommand(strSql,con);

  con.Open();//打开数据库连接
  gvList.DataSource=cmd.ExecuteReader();//设置GridView控件数据源
  gvList.DataBind();//绑定数据到GridView控件
  con.Close();//关闭连接

通常strConnection="server=(local);database=YourDatabase;integrated security=true;";连接字符串会放在Web.config文件中.在<configuration></configuration>中设置.
例如:<configuration>
    <appSettings>
     <add key="strConnection" value="server=(local);database=YourDatabase;integrated security=true;" />
    </appSettings>
     <system.web>
     ......
     </system.web>
   </configuration>
或者::<configuration>
    <connectionStrings>
     <add name="BBS" connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|BBS.mdf" providerName="System.Data.SqlClient" />
    </connectionStrings>
     <system.web>
     ......
     </system.web>
   </configuration>
使用时,using System.Configuration;命名空间.
 前者:string strCon=ConfigurationSettings.AppSettings["strConnection"].ToString();
 后者:string strCon=ConfigurationManager.ConnectionStrings["BBS"].ConnectionString

2.连接Access
需要using System.Data;和using System.Data.OleDb;两个命名空间.从创建到使用完整代码:

  string strConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data source=E:\YourDatabase.mdb;";
    
  OleDbConnection con=new OleDbConnection(strConnection);//创建连接
  
  string strSql="SELECT FirstName,LastName,Country FROM Employees";
  OleDbCommand cmd=new OleDbCommand(strSql,con);

  con.Open();//打开数据库连接
  gvList.DataSource=cmd.ExecuteReader();//设置GridView控件数据源
  gvList.DataBind();//绑定数据到GridView控件
  con.Close();//关闭连接


3.连接Excel
需要using System.Data;和using System.Data.OleDb;两个命名空间.从创建到使用完整代码:

  string strConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data source=E:\YourDatabase.xls;Extended Properties=Excel 8.0;";
    
  OleDbConnection con=new OleDbConnection(strConnection);//创建连接
  
  string strSql="SELECT FirstName,LastName,Country FROM Employees";
  OleDbCommand cmd=new OleDbCommand(strSql,con);

  con.Open();//打开数据库连接
  gvList.DataSource=cmd.ExecuteReader();//设置GridView控件数据源
  gvList.DataBind();//绑定数据到GridView控件
  con.Close();//关闭连接


4.连接XML数据源
{
  string strXMLFile="E:\YourXMLFile.xml";
  DataSet dataSet=new DataSet();
  dataSet.ReadXml(strXMLFile);

  dvList.DataSource=dataSet.Tables[0].DefaultView;
  dvList.DataBind();
}

5.Connection对象的其他属性
  ①Connction timeout等待打开连接的时间,默认值是15秒,这一时间足以找到服务器,确定数据库存在,验证安全权限,建立通信通道.若不能在15秒内完成,那将超时.若不够,可以增加值.
例如:string strConnection="server=(local);database=Northwind;integared security=true;connection timeout=30;";
  ②packet size数据包大小,默认值是8192字节,这有时会大于所需要的,若请求发送的数据少时,可以降低数据包大小,这样会提高性能.
例如,string strConnection="server=(local);database=Northwind;integared security=true;packet size=512;";

6.Connection对象的方法
  ①ChangeDatabase(),允许切换到同一服务器的不同数据库,而不必关闭连接.
例如:string strConnection="server=(local);database=Northwind;integared security=true;";
   SqlConnection con=new SqlConnection(strConnection);
   string strSql="SELECT * FROM Employees";
   SqlCommand cmd=new SqlCommand(strSql,con);
   con.Open();
   con.ChangeDataBase("Master");
   con.Close();
  ②BeginTransaction(),这个是最重要的方法.通过它获取一个事务处理对象.
例如:......//创建连接代码略
   SqlTransaction tran;
   con.Open();
   tran=con.BeginTransaction();