异步调用返回dataset问题?

Homo 2007-07-15 02:19:35
我使用异步调用返回dataset类型,结果返回空,而返回字符型就可以,不知道什么原因,谢谢!
...全文
345 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
vainnetwork 2007-07-21
  • 打赏
  • 举报
回复
结帐给分....楼住.
hm7921936 2007-07-20
  • 打赏
  • 举报
回复
OK你把DG设置为 STATIC 就行. 或者申明一个主线成对象 启动主线成 在调用这个CALLBACK 都可以 结帐吧. 给分吧 谢谢拉
Homo 2007-07-19
  • 打赏
  • 举报
回复
错误提示为:在某个线程创建的控件不能成为另一个线程上创建控件的父级
Homo 2007-07-19
  • 打赏
  • 举报
回复
搞清楚了,在callback1函数无法对窗体控件操作。dg是datagrid控件!
Homo 2007-07-19
  • 打赏
  • 举报
回复
以下是完整的源代码,是不是异步调用,无法将SQL语句传带函数中引起的?

Public Sub Callback1(ByVal ar As IAsyncResult)
''这里可以不写任何代码
'这里的代码在调用方运行结束后,开始运行
Try

Dim pds As New DataSet
If ar.IsCompleted Then
pds = wService.EndExecuteSqlPds(ar)
dg.DataSource = pds.Tables(0)
End If
Catch ex As Exception

End Try
End Sub

Private Sub btnAsyn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAsyn.Click
Dim cb As AsyncCallback = New AsyncCallback(AddressOf Callback1)

ar = wService.BeginExecuteSqlPds("select top 10 * from orderlist", cb, wService)
End Sub
以下是ExecuteSqlPds函数的代码

<WebMethod()> Public Function ExecuteSqlPds(ByVal Strsql As String) As DataSet

Dim myConn As SqlConnection = New SqlConnection
Dim pds As DataSet = New DataSet


Try
myConn = New SqlConnection(Application("strconn"))
Dim mycomm As SqlDataAdapter = New SqlDataAdapter(Strsql, myConn)
mycomm.Fill(pds, "Detail")

Catch ex As Exception
Finally
If (myConn.State = ConnectionState.Open) Then
myConn.Close()

End If
End Try
myConn.Close()
Return pds
End Function

其中Application("strconn")是连接到数据库的字符串
hm7921936 2007-07-19
  • 打赏
  • 举报
回复
LZ放代码吧。 估计是你的代码问题了
vainnetwork 2007-07-18
  • 打赏
  • 举报
回复
调式下看DS是不是本来就NULL
Homo 2007-07-17
  • 打赏
  • 举报
回复
其中Excutesqlpds肯定是正确的,而且数据库中有订单记录存在
Homo 2007-07-17
  • 打赏
  • 举报
回复
Public Sub Callback1(ByVal ar As IAsyncResult)
''这里可以不写任何代码
'这里的代码在调用方运行结束后,开始运行
Try

Dim pds As New DataSet
If ar.IsCompleted Then
pds = wService.EndExecuteSqlPds(ar)
dg.DataSource = pds.Tables(0)
End If
Catch ex As Exception

End Try
End Sub

Private Sub btnAsyn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAsyn.Click
Dim cb As AsyncCallback = New AsyncCallback(AddressOf Callback1)
ar = wService.BeginExecuteSqlPds("select top 10 * from orderlist", cb, wService)
End Sub
BearRui 2007-07-17
  • 打赏
  • 举报
回复
是不是本来的dataset就是为null的
vfan2010 2007-07-17
  • 打赏
  • 举报
回复
debug一下,说不定sql语句出错了.它又不会报错.我多次遇到过这样的问题.
hm7921936 2007-07-17
  • 打赏
  • 举报
回复
代码。 注意返回的时候DS是否填充完成
liubin911 2007-07-16
  • 打赏
  • 举报
回复
发个代码看看
ahone 2007-07-16
  • 打赏
  • 举报
回复
你先改为同步调用 试试如果没出错
可能异步设置时间的问题
ahone 2007-07-16
  • 打赏
  • 举报
回复
我试过返回 dataset 没出现什么问题
你的报错吗?
小码 2007-07-16
  • 打赏
  • 举报
回复
用XML代替DataSet。

12,165

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧