您的位置:首页 > 数据库

Ado.net中数据库连接的两种模式:连接模式和断开模式

2009-10-11 21:22 766 查看
Ado.net为我们提供了两种连接数据库的方式:连接模式和断开模式.
对数据的读取和操作在断开数据库连接之前,这样的工作方式称为连接模式,一般使用DataReader称为连接模式.
而对数据的读取在断开数据库连接之后,这样的工作方式称为断开模式,一般使用dataset.dataset包括datatable和dataview.前者用于一个表的时候,后者用于多个表合并的时候.
一般都采用断开模式,这样当多个用户访问数据库的时候可以缓解数据库服务器的压力,一般在显示大量的数据,或者要及时更新数据的时候才采用连接模式.

代码举例:
连接模式:
SqlConnection sqlConnection = new SqlConnection("Server = ; database = ; user id = ; password = ;");
SqlCommand sqlComm = new SqlCommand("select * from authors", sqlConn);
sqlConn.open();
SqlDataReader dr = sq1Comm.ExecuteReader();
while(dr.Read())
{
for(int i = 0; i < dr.FieldCount; i++)
{
Console.Write(dr.GetValue(i).ToString() + " ");
}
Console.WriteLine();
}

dr.Close();
sqlConn.Close();

//数据的读取在连接关闭之前

断开模式:
SqlConnection sqlConn = new SqlConnection("Server = ; database = ; user id = ; password = ;");
SqlDataAdapter adapter = new SqlDataAdapter("select * from authors", sqlConn);
//用来自动生产更新命令
SqlCommandBuilder cb = new SqlCommandBuilder( adapter );
sqlConn.Open();
DataSet ds = new DataSet();
adapter.Fill(ds);
sqlConn.Close();

----------------------------------------------------------
//处理数据在打开和关闭之后
for( int i =0; i < ds.Table[0].Rows.Count; i ++)
{
for ( int j = 0; j < ds.Table[0].Columns.Count; j ++)
{
Console.Write(ds.Table[0].Rows[i][j] + " ");
}
Console.WriteLine();
}

ds.Table[0].Rows[0][1] = "ZA";
ds.Table[0].Rows[1].Delete();
//更新数据库
sqlConn.Open();
adapter.Update(ds);
sqlConn.Close();

--------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: