無連接模式:可以在沒有打開連接時在內存中操作數據,DataAdapter通過管理連接為無連接模式提供服務,當要從數據庫中查詢數據時,DataAdapter打開一個連接,填充指定的DataSet,等數據讀取完馬上自動關閉連接,然后可以對數據做修改,再次使用DataAdapter打開連接,持久化修改(無論是更新,刪除或是更新),最后自動關閉連接,使用無連接模式的情況是有一些獨立數據,它們不會發生改變或者很少改變,因為在將填充DataSet和更新數據這段時間內數據庫中的實際數據也許會發生改變,如果需要將數據立即持久化到數據庫請使用連接模式
讀取數據到DataSet:無連接意味著一個連接建立了一個與數據庫的會話,請求的數據讀入到DataSet中,然后通過斷開數據庫的連接關閉會話,這時會話因為與數據庫的斷開而關閉,DataSet成為一個無連接的數據庫
代碼如下:
/// <summary>
/// 查詢學生信息
/// </summary>
/// <returns>返回填充了學生表的DataSet</returns>
public DataSet GetUserInfor()
{
string str = "Data Source=.;Initial Catalog=Student;Integrated Security=True";
var conn = new SqlConnection(str);
DataSet ds = new DataSet();
var sda = new SqlDataAdapter("SELECT * FROM Student",conn);
sda.Fill(ds, "student");//調用fill方法時,SqlDataAdapter會自動打開連接,讀取數據然后關閉連接
foreach (DataRow dr in ds.Tables["student"].Rows)
{
Console.WriteLine(dr["name"]);
}
return ds;
}
將DataSet的修改保存到數據庫
插入數據
代碼如下:
/// <summary>
/// 插入學生信息,并返回插入后的DataSet
/// </summary>
/// <param name="stu">學生實體類</param>
public DataSet InsertStudnt(Student stu)
{
DataSet ds = GetUserInfor();
string str = "Data Source=.;Initial Catalog=Student;Integrated Security=True";
新聞熱點
疑難解答
圖片精選