好的人,我在这里假设是一个简单的逻辑问题。
我会首先向您展示我的代码(至少我认为您需要的代码),然后解释问题。
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
好吧,我想要做的是找出基于不是状态的时区(这个代码如何获得它),而是通过邮政编码。这显然是b / c某些州(KY,TN,OK等)按时区划分。
所以我最终会喜欢这个函数来查看邮政编码...找出邮政编码所在的时区......然后返回时区。
如果不明显。此信息所依据的表格名为“Zips”。它由多个列组成,包括zip,city,state,county,areacode和timezone。时区是表中的列,只有诸如“5,6,7,8等”的值对应于每个时区。 5 =东部,6 =中央,等等..
感谢任何指导。
答案 0 :(得分:1)
看起来非常直接,除非我不理解某事。您首先需要更改方法签名以获取邮政编码:
Function GetTimeZone(ByVal zipcode As Integer) As Integer
然后,您必须将查询更改为按该邮政编码搜索:
queryString = "SELECT Top 1 Zips.TimeZone "
queryString += "FROM Zips "
queryString += "WHERE (((Zips.Zip)=" & zipcode & "));"
其他一切都应该按原样运作。