2013年1月3日 星期四

[技巧] DataTable - 查詢篇 (找出所在的索引位置) 並刪除


程式:
'Dim row() As DataRow = Me.Head_dt.Select("詢價單號 = 'AA01'")
Dim row() As DataRow = Me.Head_dt.Select("詢價單號 = '" & TextBox1.Text.Trim & "'")
MsgBox(Me.Head_dt.Rows.IndexOf(row(0)))

  Note:
Select 方法會回傳 DataRow 陣列 (多筆) 
Dim row() As DataRow = Me.Head_dt.Select("詢價單號 = 'AA01'")

其它:
'MsgBox(Me.Head_dt.Select("詢價單號 = 'AA02'").Length) <-- 總共找到幾筆資料
'Me.Head_dt.Rows.RemoveAt(Me.Head_dt.Rows.IndexOf(row(0))) <-- 刪除此索引值的Row

刪除另解:DataRow會連動底層DataTable... 應該是 call by refence
        Dim dtrow() As DataRow = dt.Select("詢價單號 = '" & DataGridView1.CurrentRow.Cells("詢價單號").Value.ToString & "' and 序號 = " & DataGridView1.CurrentRow.Cells("序號").Value.ToString & "")
        'dt.Rows(0)(0) = "AA0000"
        dt.Rows(0).Delete()
从 DataTable 对象中删除 DataRow 对象 遇到的问题

備註:
若是日期格式,則 # 欄位資料 #

for i as integer = 0 to row.GetUpperBound(0)
    msgbox(row(i)("欄位名稱").Tostring)
next

參考:
How to find index of a row based on the object value? (C#)
[ADO.NET] 如何使用 DataTable / 搜尋 過濾 資料
檢視 DataTable 中的資料
DataTable Select的陷阱
DataTable (Select, Find, Compute and Linq)
Linq實踐系列(1):一句代碼實現DataTable全文搜索(Full Text Search)
在DataTable中查询应该注意的问题
对DataTable数据进行查询过滤
DataTable中的select()用法
DataTable.Compute 方法

參考2:
about DataTable.Select("FieldName=日期時間")
.net datatable 的 select 敘述使用 SQLSERVER datetime
Select in DataTable with condition on DateTime column
SUBSTRING LIKE
Datatable.Select 的運算式用法
Linq小技巧:日期處理
SQL函數 查詢SQL資料欄位相符的字串
MSSql 中Charindex ,Substring的使用
CHARINDEX (Transact-SQL)

沒有留言:

張貼留言