C# 直接建立一個DataTable,併為之新增資料(自定義DataTable)
阿新 • • 發佈:2019-01-03
DataTable dt=new DataTable("cart"); DataColumn dc1=new DataColumn("prizename",Type.GetType("System.String")); DataColumn dc2=new DataColumn("point",Type.GetType("System.Int16")); DataColumn dc3=new DataColumn("number",Type.GetType("System.Int16")); DataColumn dc4=new DataColumn("totalpoint",Type.GetType("System.Int64")); DataColumn dc5=new DataColumn("prizeid",Type.GetType("System.String")); dt.Columns.Add(dc1); dt.Columns.Add(dc2); dt.Columns.Add(dc3); dt.Columns.Add(dc4); dt.Columns.Add(dc5); //以上程式碼完成了DataTable的構架,但是裡面是沒有任何資料的 for(int i=0;i<10;i++) { DataRow dr=dt.NewRow(); dr["prizename"]="娃娃"; dr["point"]=10; dr["number"]=1; dr["totalpoint"]=10; dr["prizeid"]="001"; dt.Rows.Add(dr); } //填充了10條相同的記錄進去 有人會這麼做 DataRow dr=new DataRow(); .. dt.Rows.Add(dr); 這樣是不行的,因為一個DataRow必定是屬於一個DataTable的,不能憑空建立,就好比一條記錄一定是屬於一個表一樣 又有人這麼做 DataRow dr=dt.NewRow(); dr["prizename"]="娃娃"; dr["point"]=10; dr["number"]=1; dr["totalpoint"]=10; dr["prizeid"]="001"; for(int i=0;i<10;i++) { dt.Rows.Add(dr); } 這樣做同樣是錯誤的,因為DataTable已經有這條DataRow了,就好比一個表中不可能存在2條一樣的記錄,必須每次NewRow()