わかりました、私は単純な論理問題であると想定してここにいます。
最初にコードを示し (少なくとも必要と思われるものはすべて)、次に問題を説明します。
Function GetTimeZone(ByVal state As String) As Integer
Dim TaxConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ConfigurationManager.AppSettings("Database")
Dim dbConnection As OleDbConnection = New OleDbConnection(TaxConnStr)
Try
Dim queryString As String
queryString = "SELECT Top 1 Zips.State, Zips.TimeZone "
queryString += "FROM Zips "
queryString += "WHERE (((Zips.State)='" & state & "'));"
Dim dbCommand As OleDbCommand = New OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dataAdapter As OleDbDataAdapter = New OleDbDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As DataSet = New DataSet
dataAdapter.Fill(dataSet)
If dataSet.Tables(0).Rows.Count >= 1 Then
Return dataSet.Tables(0).Rows(0).Item("TimeZone")
Else
Return 0
End If
Catch ex As Exception
Console.WriteLine(ex.Message)
myLogger.Log(ex.Message)
Finally
dbConnection.Close()
End Try
end Function
わかりました、私がやろうとしているのは、州ではなく(このコードが取得する方法)、郵便番号に基づいてタイムゾーンを見つけることです。これは明らかに一部の州 (KY、TN、OK など) がタイム ゾーンで分割されているためです。
したがって、最終的には、この関数で郵便番号を調べて、その郵便番号がどのタイム ゾーンにあるかを調べて、そのタイム ゾーンを返すようにしたいと考えています。
それが明らかでない場合。この情報が取得されるテーブルの名前は「Zips」です。これは、zip、city、state、county、areacode、および timezone の範囲の複数の列で構成されています。表のタイムゾーン列には、各タイムゾーンに対応する「5、6、7、8など」などの値しかありません。5 = 東部、6 = 中央など。
ご指導ありがとうございます。