这个简单,在装载datset的时候给table一个码:
myDataAdapter.Fill(ds,"myTable")
ds.tables("myTable").PrimeryKey = New DataColumn(){ds.Tables("myTable").column("ID")}
Dim r As DataRow = ds.Tables("myTable").Rows.Find("XXX")(XXX代表要查找的)
try
'使用
Sub test()
Dim SS As String
Dim mArray As Array
try
mArray = GetItemArray(OnDutyDt, "EmpNo", LblTxtBtnEmpNo.txt.Text)
SS = CType(mArray(0)(1), String)
MsgBox(SS)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Function GetItemArray(ByVal Table As DataTable, ByVal FindColumnName As String, ByVal Value As Object) As Array
If Table Is Nothing Then
Throw New Exception("DataTable为Nothing")
Return Nothing
End If
Dim mColumn As DataColumn
If Table.Columns.Contains(FindColumnName) Then
mColumn = Table.Columns(FindColumnName)
End If
If mColumn Is Nothing Then
Throw New Exception("表中没有" & FindColumnName & "这个字段")
Return Nothing
End If
Dim mValue As String
mValue = Convert.ToString(Value)
Dim SELECT_STRING As String
If TypeOf mColumn.DataType Is Integer Then
SELECT_STRING = FindColumnName & "={0}"
Else
SELECT_STRING = FindColumnName & "='{0}'"
End If
Dim mRows As DataRow() = Table.Select(String.Format(SELECT_STRING, mValue))
If mRows.Length = 0 Then
Throw New Exception(FindColumnName & " 中没有 " & mValue)
Return Nothing
End If
Dim mArray(mRows.Length - 1) As Array
Dim mRow As DataRow
Dim i As Integer = 0
For Each mRow In mRows
mArray.SetValue(mRow.ItemArray, i)
i += 1
Next
Return mArray
End Function
Public Function GetItemArray(ByVal Table As DataTable, ByVal FindColumnName As String, ByVal Value As Object) As Array
Dim mColumn As DataColumn
If Table.Columns.Contains(FindColumnName) Then
mColumn = Table.Columns(FindColumnName)
End If
If mColumn Is Nothing Then Return Nothing
Dim mValue As String
mValue = Convert.ToString(Value)
Dim SELECT_STRING As String
If TypeOf mColumn.DataType Is Integer Then
SELECT_STRING = FindColumnName & "={0}"
Else
SELECT_STRING = FindColumnName & "='{0}'"
End If
Dim mRows As DataRow() = Table.Select(String.Format(SELECT_STRING, mValue))
If mRows.Length = 0 Then Return Nothing
Dim mArray(mRows.Length - 1) As Array
Dim mRow As DataRow
Dim i As Integer = 0
For Each mRow In mRows
mArray.SetValue(mRow.ItemArray, i)
i += 1
Next
Return mArray
End Function
'使用
Sub test()
Dim SS As String
Dim mArray As Array
mArray = GetItemArray(OnDutyDt, "EmpNo", LblTxtBtnEmpNo.txt.Text)
If Not mArray Is Nothing Then
SS = CType(mArray(0)(1), String)
MsgBox(SS)
End If
End Sub
我现在的代码是
Dim FIND_EMPNO As String = "empno='{0}'"
Dim dd As New DataTable
dd = OnDutyDt
'Dim mRows As DataRow() = dd.Select(Format(FIND_EMPNO, "a6075"))
Dim mRows As DataRow() = dd.Select(Format(FIND_EMPNO, LblTxtBtnEmpNo.txt.Text))
Dim mRow As DataRow
For Each mRow In mRows
MsgBox(String.Format(FIND_EMPNO, mRow.ItemArray))
Next mRow
dd里明明有empno="a6075"的信息,却返回查找不成功的错误!
你不清楚Format.String的用法,建议你先去看看:
dim FIND_EMPNO As String="empno='{0}'"
Dim dd As New DataTable
dd = OnDutyDt
Dim mRows As DataRow() = dd.Select(Format.String(FIND_EMPNO,LblTxtBtnEmpNo.txt.Text))
Dim ss As String
'ss = CStr(dd.)
ss = CStr(dd.Rows.Item(0)(13))
Dim dd As New DataTable
dd = OnDutyDt
Dim mRows As DataRow() = dd.Select(Format.String("empno", "王先生"))
dd.Select("EmpNo='" & LblTxtBtnEmpNo.txt.Text & "'")
Dim ss As String
'ss = CStr(dd.)
ss = CStr(dd.Rows.Item(0)(13))