asp.net

DataView与DataRowView的用法

2011-03-15
  1. <PRE class=c# name="code"><PRE class=c# name="code">public void getData()   
  2. {   
  3.  SqlConnetion con=new SqlConnection"sever=.;database=;uid=;pwd=;")    
  4. SqlCommand cmd=con.CreateCommand();   
  5. cmd.CmdText="";   
  6. DataSet ds=new DataSet();   
  7. DataAdapter da=new DataAdapter(cmd);   
  8. da.Fill(ds);   
  9. //方法一:   
  10. string text=ds.tables[0].Rows[0][1].ToString();   
  11. //方法二:   
  12. DataTable dt=ds.tables[0];   
  13. string text=dt.Rows[0][1].ToString();   
  14. //方法三:   
  15. DataTable dt=new DataTable();   
  16. dt.Load(ds);   
  17. string text=dt.Rows[0][1].ToString();   
  18. }   
  19. </PRE>   
  20.              DataRowView drv = bindPhoto().DefaultView[0];   
  21.             Response.Write(drv.Row["photoUrl"].ToString());//页面输出图片的保存地址   
  22.             DataView dv = new DataView(bindPhoto());   
  23.             Response.Write(dv.Table.Rows[0][1].ToString());   
  24.             DataRow[] dr = bindPhoto().Select();   
  25.             foreach (DataRow r in dr)   
  26.             {   
  27.                 Response.Write(r["photoUrl"].ToString());   
  28.             }          </PRE>   
  29.  //创建和声明DataTable对象   
  30. DataTable  total=new DataTable();   
  31. //给DataTable对象添加DataColumn对象   
  32. total.Columns.Add(new DataColumn("班组",typeof(string)));   
  33. total.Columns.Add(new DataColumn("姓名",typeof(string)));   
  34. total.Columns.Add(new DataColumn("学科",typeof(string)));   
  35. total.Columns.Add(new DataColumn("成绩",typeof(int)));   
  36. //声明DataRow对象   
  37. DataRow dr=total.NewRow();   
  38. //给DataRow对象中的各列赋值   
  39. dr["班组"]= "一班";   
  40. dr["姓名"]= " 李宏";   
  41. dr["学科"]= "语文 ";   
  42. dr["成绩"]=98;   
  43. //将DataRow对象添加到DataTable对象中   
  44. total.Rows.Add(dr);   
  45. dr=total.NewRow();   
  46. dr["班组"]= "一班";   
  47. dr["姓名"]= " 刘京生";   
  48. dr["学科"]= "语文 ";   
  49. dr["成绩"]=96;   
  50. total.Rows.Add(dr);   
  51. //创建DataView对象,DataView对象的数据从DataTable对象中获得   
  52. DataView dv=new DataView(total);   
  53. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////   
  54. 一、将DataRowView对象添加进DataView对象中   
  55. DataRowView drv=dv.AddNew();   
  56. drv["班组"]= "一班";   
  57. drv[“姓名”]= “ 赵刚";   
  58. drv["学科"]= "语文 ";   
  59. drv[“成绩”]=99;   
  60. //结束编辑 可以调用DataRowView的CancelEdit()方法取消插入   
  61. Drv.EndEdit();   
  62. 二、修改现有的DataRowView对象   
  63. //开始编辑   
  64. dv[2].BeginEdit();   
  65. //修改列值   
  66. dv[2][“成绩”]=98;   
  67. //对束编辑可以调用DataRowView的CancelEdit()方法取消修改   
  68. dv[2].EndEdit();   
  69. 利用DataRowView的IsNew和IsEdit属性来检测DataRowView是否为新行或是否被编辑过。   
  70. 三、删除现有的DataRowView对象   
  71. //调用DataView的Delete()方法,传入要删除的DataRowView的索引值   
  72. dv.Delete(1);   
  73. //调用DataRowView的Delete()方法删除   
  74. dv[1].Delete();   
  75. //调用DataTable的AcceptChanges()方法永久删除基础DataRow。   
  76. dt.AcceptChanges();   
  77. 要取消删除,可以调用DataTable的RejectChanges()方法取消删除,从而取消未提交的增加与修改

 

 

  1. 但是在取数据源中的值时,通常按以下做法两种都一样      <PRE class=c# name="code"//方法一   
  2.             //DataRowView drv = bindPhoto().DefaultView[0];   
  3.             //Response.Write(drv.Row["photoUrl"].ToString());//页面输出图片的保存地址   
  4.             //方法二    
  5.             //DataView dv = new DataView(bindPhoto());   
  6.             //Response.Write(dv.Table.Rows[0][1].ToString());   
  7.             //方法三   
  8.             //DataRow[] dr = bindPhoto().Select();   
  9.             //foreach (DataRow r in dr)   
  10.             //{   
  11.             //    Response.Write(r["photoUrl"].ToString());   
  12.             //}    
  13.             //方法四   
  14.             Response.Write(bindPhoto().Rows[0][1].ToString());</PRE>  

 

 

  1.            如果数据源是DataSet类型的,可以通过以下方式取出相关字段<PRE class=c# name="code">  public void test()   
  2.     {   
  3.         SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connStr"].ToString());   
  4.         SqlCommand cmd = con.CreateCommand();   
  5.         cmd.CommandText = "select * from 用户信息 ";   
  6.         SqlDataAdapter da = new SqlDataAdapter(cmd);   
  7.         DataSet ds = new DataSet();   
  8.         da.Fill(ds, "用户信息");   
  9.         //方法一   
  10.         string text = ds.Tables[0].Rows[0][1].ToString();   
  11.         Response.Write(text+"</br>");   
  12.         //方法二   
  13.         DataTable dt = ds.Tables[0];   
  14.         string text1 = dt.Rows[0][1].ToString();   
  15.         Response.Write(text);          
  16.     }</PRE>   
  17.  如果数据源是SqlDataReader类型,方法如下   
  18. <PRE class=c# name="code"public void test2()   
  19.     {   
  20.         SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connStr"].ToString());   
  21.         SqlCommand cmd = con.CreateCommand();   
  22.         cmd.CommandText = "select * from 用户信息 ";   
  23.         SqlDataReader dr = cmd.ExecuteReader();   
  24.         //方法一   
  25.         if (dr.Read())   
  26.         {   
  27.             string text = dr["userName"].ToString();   
  28.             Response.Write(text + "</br>");   
  29.             dr.Close();   
  30.         }   
  31.         //方法二   
  32.         DataTable dt = new DataTable();   
  33.         dt.Load(dr);   
  34.         //以下步骤如上test()中         
  35.     }</PRE>