DataColumn workColumn = workTable.Columns.Add(
"CustomerID", typeof(Int32));
workColumn.AutoIncrement = true;//重點在這裡
- Aug 30 Wed 2006 19:42
Column.AutoIncrement自動累加
- Aug 30 Wed 2006 15:48
DataTable設定主鍵
資料庫資料表通常會有一個資料行或資料行群組,可唯一識別資料表的每個資料列。這個識別資料行或資料行群組又稱為主索引鍵。
當您將單一 DataColumn 識別為 DataTable 的 PrimaryKey 時,資料表會自動將資料行的 AllowDBNull 屬性設為 false,並將 Unique 屬性設為 true。如果是多重資料行的主索引鍵,則將只有 AllowDBNull 屬性會自動設為 false。
DataTable 的 PrimaryKey 屬性接收一或多個 DataColumn 物件的陣列做為其值,如下列範例所示。第一個範例定義單一資料行為主索引鍵。
- Aug 30 Wed 2006 15:25
DataTable建立結構欄位
下列範例新增四個資料行到 DataTable。
DataTable workTable = new DataTable("Customers");
DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32));
workCol.AllowDBNull = false;//不可為空值
- Aug 30 Wed 2006 12:37
DataTable建立運算式(expression)的欄位
DataTable某些欄位是根據另一個欄位計算出來了(例如:價目表上原價X元,會員價一律打0.9折)
workTable.Columns.Add("Price", typeof(Double));
workTable.Columns.Add("NumberPrice", typeof(Double), "Price* 0.9");//運算式是string格式喔
- Aug 30 Wed 2006 12:15
建立DataTable
有兩種建立DataTable的方式
1.下列範例將建立 DataTable 物件的執行個體,並為它指派 "Customers" 名稱。
DataTable workTable = new DataTable("Customers");
- Aug 30 Wed 2006 11:53
欄位資料的驗證
欄位資料的驗證(check某欄的值,不符合需求,即取消其欄位的變更)
DataTable workTable = new DataTable();
- Aug 30 Wed 2006 00:46
使用DataTable的事件
workTable.ColumnChanged += new
DataColumnChangeEventHandler(OnColumnChanged);
workTable.ColumnChanging += new
- Aug 29 Tue 2006 23:59
DataTable的ColumnChanging事件
ColumnChanging 會發生在欄位資料值進行改變時(跟dbgrid的ColumnChanging 意思差很多~)
可以在此事件中,抓到那個爛位發生資料值變更,且新值與舊值都抓得到
private static void DataTableColumnChanging()
- Aug 29 Tue 2006 19:03
巧克力鮮奶油瑞士捲(用中筋麵粉)
- Aug 29 Tue 2006 18:03
巧克力鮮奶油
- Aug 29 Tue 2006 00:46
打發鮮奶油
鮮奶油打發,最大的重點就是隔冰打發~
我都是準備一個外盆(圖上的打蛋盆就可以),在裡面放冰塊跟水(因為我家冰塊不多啦,只好補點水),然後拿一個杯子裝鮮奶油,放在盆子裡--我都是拿圖上的那個塑膠量杯來打,它有耳朵可以抓,很方便(它有250cc-它是麵包機送的,所以比標準杯240cc還大,因為每次打的量約60~80cc,所以不會滿出來)
- Aug 28 Mon 2006 23:19
手動打蛋器&電動打蛋器
- Aug 28 Mon 2006 15:09
在dataset中建立表格與表格間的關聯
在dataset中,可能有多個表格(DataTable),而其中有可能某table與另一table有Master-Detail的關係,可以用dataset.relations建立關聯
下列程式碼範例在 DataSet 中使用兩個 DataTable 物件來建立 DataRelation。每個 DataTable 都包含一個名為 CustID 的資料行,做為兩個 DataTable 物件間的連結。此範例會將一個 DataRelation 加入 DataSet 的 Relations 集合中。範例中第一個引數指定即將被建立的 DataRelation 的名稱,第二個引數設定父 DataColumn,第三個引數則設定子 DataColumn。
- Aug 28 Mon 2006 09:55
DataAdapter.Update-插入、更新和刪除的順序(整批處理)
許多情況下,以何種順序將透過 DataSet 所進行的變更傳送給資料來源是很重要的。例如,如果更新了現有資料列的主索引鍵值,也加入了具有新主索引鍵值的資料列,則先進行更新再執行插入是很重要的。
您可以使用 DataTable 的 Select 方法,傳回只以特定 RowState 參考資料列的 DataRow 陣列。接著,您可以將傳回的 DataRow 陣列傳遞給 DataAdapter 的 Update 方法來處理已修改的資料列。您可指定要更新的資料列子集,藉以控制插入、更新和刪除的處理順序。
DataTable table = dataSet.Tables["Customers"];// First process deletes.adapter.Update(table.Select(null, null, DataViewRowState.Deleted));// Next process updates.adapter.Update(table.Select(null, null,DataViewRowState.ModifiedCurrent));// Finally, process inserts.adapter.Update(table.Select(null, null, DataViewRowState.Added));
- Aug 28 Mon 2006 09:23
DataAdapter 的 UpdateCommand
下列範例示範如何明確設定 DataAdapter 的 UpdateCommand,以更新已修改的資料列。請注意,UPDATE 陳述式中 WHERE 子句指定的參數是設定為使用 SourceColumn 的 Original 值。這一點相當重要,因為 Current 值可能已經修改,而不符合資料來源中的值。Original 值是用來從資料來源填入 DataTable 的值。
// Assumes connection is a valid SqlConnection.SqlDataAdapter dataAdpater = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", connection);dataAdpater.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +"WHERE CategoryID = @CategoryID" , connection);dataAdpater.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");SqlParameter parameter = dataAdpater.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);parameter.SourceColumn = "CategoryID";//重點在這裡parameter.SourceVersion = DataRowVersion.Original;//還有這裡DataSet dataSet = new DataSet();dataAdpater.Fill(dataSet, "Categories");DataRow row = dataSet.Tables["Categories"].Rows[0];row ["CategoryName"] = "New Category";dataAdpater.Update(dataSet, "Categories");