[英]VB.NET - Switch Network SQL Server 2008 R2 Database to a mobile SQL Server CE *.sdf File
[英]webservice vb.net read data sql server 2008 R2
当我想从sql server读取数据时,我的程序有2个问题。 我的问题
我的代码
<WebMethod()> _
Public Function TopKill() As Integer
Dim con As New SqlConnection
con.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=RF_World;Integrated Security=True"
Dim killing As String
con.Open()
Dim cmd As New SqlCommand(("SELECT TOP 20 Name FROM tbl_pvporderview Join tbl_base ON tbl_pvporderview.serial = tbl_base.Serial ORDER BY [Kill] DESC"), con)
Dim killreader As SqlDataReader
killreader = cmd.ExecuteReader()
killreader.Read()
If killreader.HasRows Then
killing = killreader.Item("Name").ToString
End If
con.Close()
Return killing
End Function ' TOP 20 Killer
我的代码
<WebMethod()> _
Public Function TopKill() As Integer
Dim con As New SqlConnection
con.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=RF_World;Integrated Security=True"
Dim killing As String
con.Open()
Dim cmd As New SqlCommand(("SELECT TOP 20 [Kill], Death FROM tbl_pvporderview Join tbl_base ON tbl_pvporderview.serial = tbl_base.Serial ORDER BY [Kill] DESC"), con)
Dim killreader As SqlDataReader
killreader = cmd.ExecuteReader()
killreader.Read()
If killreader.HasRows Then
killing = killreader.Item("Kill").ToString
killing = killreader.Item("Death").ToString
End If
con.Close()
Return killing
End Function ' TOP 20 Killer
我不知道如何解决它。 我真的需要帮助来修复我的代码。 也许任何人都可以帮我修改我的代码
谢谢你
我首先尝试删除SQL的TOP 20
部分,看看是否抛出SqlDataReader
,认为第一个字段是整数列。 如果是,则尝试强制SQL将该字段解释为数字: SELECT TOP 20 CAST([Kill] AS NVARCHAR(20)), Death FROM tbl_pvporderview Join tbl_base ON tbl_pvporderview.serial = tbl_base.Serial ORDER BY [Kill] DESC
看看你的功能
Public Function TopKill() As Integer
现在看看你要回来的东西
Dim killing As String
....
Return killing
你的函数期望返回一个Integer并且你传递一个String ..实际上是一个String数组
改成
Public Function TopKill() As String
至于你的第二个问题
你完全用死亡写了Kill值......函数给出了一个答案,因为它是Cast'able'作为一个整数,所以VB为你做这个。
UPDATE
查看代码,您需要输出数据表而不是字符串(数组)所以将函数更改为
<WebMethod> _
Public Function Function TopKill() As DataTable
Dim con As New SqlConnection
con.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=RF_World;Integrated Security=True"
Dim SelectQry As String = "SELECT TOP 20 Name FROM tbl_pvporderview Join tbl_base ON tbl_pvporderview.serial = tbl_base.Serial ORDER BY [Kill] DESC"
Dim da As New Sqldataadapter()
Dim Command As New SqlCommand(SelectQry, con)
da.selectedCommand = Command
Dim dtresults As DataTable = newDataTable()
Try
con.Open()
da.Fill(dtresults)
Catch ex As Exception
Throw ex
Finally
con.Close()
End Try
Return dtresults
End Function
返回的结果将是具有Top 20 Name,Kill和Death记录的数据表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.