ADO.NET通过Connection连接到数据库。Connection包括Open和Close方法。Open表示 打开数据库连接,Close表示关闭数据库连接。
在每次打开数据库连接后,都需要关闭数据库连接。
1.建立连接
在SQL数据库的连接中,需要使用.NET提供的SqlConnection对象来对数据库进行连接。在连接数据库前,需要为连接设置连接串,连接串就相当于告诉应用程序怎样找到数据库去进行连接,然后程序才能正确的与SQL建立连接,连接字串示例代码如下所示。
data source='服务器名称';database='数据库名称';user id='数据库用户名';password='数据库密码';
上述代码说明了数据库连接字串的基本格式,如果需要连接到本地的Test数据库,则编写相应的SQL连接字串进行数据库的连接,示例代码如下所示。
string connStr; //声明连接字串
connStr= " data source='(local)';database=Test;user id='sa';password='sa';"; //设置连接字串(local也可以写成.)
上述代码声明了一个数据库连接字串,SqlConnection类将会通过此字串来进行数据库的连接。其中,server是SQL服务器的地址,如果相对于应用程序而言数据库服务器是本地服务器,则只需要配置为(loacal)即可,而如果是远程服务器,则需要填写具体的ip。另外,uid是数据库登录时的用户名,pwd是数据库登录时使用的密码。在声明了数据库连接字串后,可以使用SqlConnection类进行连接,示例代码如下所示。
string connStr; //声明连接字串
connStr= "data source='(local)';database=Test;user id='sa';password='sa';"; //编写连接字串
SqlConnection con = new SqlConnection(connStr); //新建SQL连接
try
{
con.Open(); //打开SQL连接
Label1.Text = "连接数据库成功"; //提示成功信息
}
catch
{
Label1.Text = "无法连接数据库"; //提示失败信息
}
注意:在使用SqlConnection类时,需要使用命名空间using System.Data.SqlClient;而连接Access数据库时,需要使用命名空间using System.Data.OleDb。
2.填充DataSet数据集
DataSet数据集表示来自一个或多个数据源数据的本地副本,是数据的集合,也可以看作是一个虚拟的表。DataSet对象允许Web窗体半独立于数据源运行。DataSet能够提高程序性能,因为DataSet从数据源中加载数据后,就会断开与数据源的连接,开发人员可以直接使用和处理这些数据,当数据发生变化并要更新时,则可以使用DataAdapter重新连接并更新数据源。DataAdapter可以进行数据集的填充,创建DataAdapter对象的代码如下所示。
SqlDataAdapter da=new SqlDataAdapter("select * from news",con); //创建适配器
上述代码创建了一个DataAdapter对象并初始化DataAdapter对象,DataAdapter对象的构造函数允许传递两个参数初始化,第一个参数为SQL查询语句,第二个参数为数据库连接的SqlConnection对象。初始化DataAdapter后,就需要将返回的数据的集合存放到数据集中,示例代码如下所示。
DataSet ds = new DataSet(); //创建数据集
da.Fill(ds, "tablename"); //Fill方法填充
上述代码创建了一个DataSet对象并初始化DataSet对象,通过DataAdapter对象的Fill方法,可以将返回的数据存放到数据集DataSet中。DataSet可以被看作是一个虚拟的表或表的集合,这个表的名称在Fill方法中被命名为tablename。
3.显式DataSet
当返回的数据被存放到数据集中后,可以通过循环语句遍历和显示数据集中的信息。当需要显示表中某一行字段的值时,可以通过DataSet对象获取相应行的某一列的值,示例代码如下所示。
ds.Tables["tablename"].Rows[0]["title"].ToString(); //获取数据集
上述代码从DataSet对象中的虚表tablename中的第0行中获取title列的值,当需要遍历DataSet时,可以使用DataSet对象中的Count来获取行数,示例代码如下所示。
for (int i = 0; i < ds.Tables["tablename"].Rows.Count; i++) //遍历DataSet数据集
{
Response.Write(ds.Tables["tablename"].Rows[i]["title"].ToString()+"<br/>");
}
DataSet不仅可以通过编程的方法来实现显示,也可以使用ASP.NET中提供的控件来绑定数据集并显示。ASP.NET中提供了常用的显示DataSet数据集的控件,包括Repeater、DataList、GridView等数据绑定控件。将DataSet数据集绑定到DataList控件中可以方便的在控件中显示数据库中的数据并实现分页操作,示例代码如下所示。
DataList1.DataSource = ds; //绑定数据集
DataList1.DataMember = "tablename";
DataList1.DataBind(); //绑定数据
上述代码就能够将数据集ds中的数据绑定到DataList控件中。