none
ADO.NET的连接式和断开式 RRS feed

  • 常规讨论

  • 关于ADO.NET的书籍和文章很多,在这里主要使用在我教学中给学生做演示的两个小例子,来比较ADO.NET的连接式和断开式,程序员一般不喜欢说教,下面就以代码说话:

     

    连接式

    SqlConnection sqlConn=new SqlConnection("server=.;database=pubs;

    user id=sa;password=;");
    SqlCommand sqlComm=new SqlCommand("select * from authors",sqlConn);
    //操作在打开和断开数据库之间
    sqlConn.Open();
    SqlDataReader dr=sqlComm.ExcuteReader();
    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=pubs;user id=sa;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.Tables[0].Rows.Count; i++)
    {
    for (int j=0; j<ds.Tables[0].Columns.Count; j++
    {
    Console.Write(ds.Tables[0].Rows[i][j]+" ");
    }
    Console.WriteLine();
    }
    //更改数据
    ds.Tables[0].Rows[0][1]="A";
    ds.Tables[0].Rows[1].Delete();
    //更新数据库
    sqlConn.Open();
    adapter.Update(ds);
    sqlConn.Close();

    2009年5月31日 6:42