希望在这里得到快速的答复。
好的,因为我从数据库中进行了很多单值查找,所以我创建了一个函数来为我处理查找。它旨在获取任何类型的数据类型(字符串、整数、日期……)。
当我想要检索一个数字时它可以工作,但是当我想要一个字符串时给我一个错误(InvalidCastException 试图将一个字符串转换为一个整数就行了:GetValue = DR(0))。我不能做 ctype 或 directcast,因为数据类型是未知的并且会变化。尚未测试任何其他数据类型。
代码如下。我想知道如何使这个函数工作,或者指出另一个可以达到同样目的的函数。
Public Shared Function GetValue(Optional ByVal SQL As String = "", Optional ByVal FieldName As String = "", Optional ByVal TableName As String = "", Optional ByVal WhereClause As String = "") As VariantType?
Dim myConnection As SqlConnection
Dim myCommand As SqlCommand
Dim strSQL As New SQLStringBuilder
Dim DR As SqlDataReader
myConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnAFRAMSSQL").ConnectionString)
strSQL.Add(SQL)
If FieldName > "" Then
strSQL.Add("SELECT " & FieldName)
End If
If TableName > "" Then
strSQL.Add("FROM " & TableName)
End If
If WhereClause > "" Then
strSQL.Add("WHERE " & WhereClause)
End If
myConnection.Open()
myCommand = New SqlCommand(strSQL.ToString, myConnection)
DR = myCommand.ExecuteReader()
If DR.HasRows Then
DR.Read()
GetValue = DR(0)
Else
GetValue = Nothing
End If
End Function
谢谢。