2011年6月29日 星期三

#VB datatable 中的 SQL 語法 (不透過database)


將相同 資料結構 的 DataTable 結合

DataTable.Load 方法



How do I convert a DataTable to an IDatareader?




        tblTask.Load(tblTaskShow.CreateDataReader)
        tblTask.Load(tblTaskTmp.CreateDataReader)

=========================================================
萬用字元

* 和 % 都可以在 LIKE 比較中做為萬用字元來交替使用。如果在 LIKE 子句的字串含有 * 或 %,則這些字元應該在括號 ([]) 中逸出。如果括號在子句中,則括號字元應該在括號 (例如 [[] 或 []]) 中逸出。萬用字元允許用在模式的開端和末端、或用在模式的末端,或用在模式的開端。例如:

"ItemName LIKE '*product*'"

"ItemName LIKE '*product'"

"ItemName LIKE 'product*'"

萬用字元不允許用在字串的中間。例如,不允許 'te*xt'。

====================================================================

datatable select 

多个条件时使用 and、or ,这和 SQL 中一样。
如:
string filter = String.Format("Col1 = '{0}' and Col2 = '{1}'", col1Value, col2Value);
dt.Select(filter);




Dataset 中 2個datatable做join問題(或是做資料比對問題)?


查下去發現有更高階的
就是自己寫方法,帶入參數,建立關聯,
去將兩個 datatable 作JOIN
靠太難了ˊˋ


Dim tmpView As DataView = Dt.DefaultView
Dim tmpTable as DataTable = tmpView.ToTable("TmpTable1",True,"LastName")



===============================================

兩個DataTable的資料列如何合併




[ADO.NET]DATATABLE 新增 DataTable.Row.Add DATAROW發生 這個資料列已經屬於其他資料表(使用情境 DataSet DataTable 取 TOP)


1.先複製來源 DataTable的結構
2.使用複製資料方式加入資料列
dtRss.ImportRow(tb.Rows[iIndex])

datatable.rows.add VS datatable.importrow
加入 某個 row 複製 某個 row
該資料列不可共存於其他table 該資料列可以存在其他table(因為是複製)

這背後運作是啥原理?
=================================================================
另外在作 Datatable.clear()時
將清除Datatable所有資料,包含SCHEMA結構
DataTable.Clear not only removes all of the data from the DataTable, it clears the schema as well
==========================================================
大概知道問提出在哪
似乎是說
你將 table 或是 table  row 要寫入其他 table 時
其他 table 應該遵從要寫入 table 的 schema

最保險的做法是
1.清空要寫入的 table.clear()
2.複製被寫入的table, table.copy()
       將schema,資料值都一併寫入



沒有留言:

張貼留言