我想过滤datagrid的数据,用的是dataset,该怎么写啊。在线等

zeallag1 2005-03-06 08:03:22
我在另一个窗口已经写好了select where 语句,然后给dataadapter的selectcomman.commandtext ,然后再用dataadapter.fill(dataset),可结果没有变化,好像datagrid里的数据只有在窗口的load事件才会变化。
可我另外一个窗口做的修改添加数据操作,通过重新dataadapter.fill(dataset)就可以显示了。
哪位详细介绍一个过程吧,
...全文
119 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zeallag1 2005-03-07
非常感谢以上的各位。
回复
hamadou 2005-03-07
将objAd.SelectCommand = New OleDbCommand
objAd.SelectCommand.Connection = objconn
换成:objAd.SelectCommand.Connection = objconn 试试!

回复
Ninputer 2005-03-07
不妨试验一下DataView,快很多倍哦
回复
zeallag1 2005-03-07
'fm1_product为datagrid所在的窗体, ds_product为dataset, dg_product为datagrid
' da_product为dataAdapter
commandtext = fun_comtext()'取得查询语句,运行正常
fm1_product.da_product.SelectCommand.CommandText = fm1_product.da_product.SelectCommand.CommandText + commandtext
Try
fm1_product.da_product.Fill(fm1_product.ds_product, "product")
fm1_product.dg_product.DataSource = fm1_product.ds_product
fm1_product.dg_product.Refresh()
MsgBox(fm1_product.da_product.SelectCommand.CommandText)
Catch ex As Exception
MsgBox(ex.Message)
End Try
以上代码能正常运行,可就是datagrid里的数据没有任何变化。保证查询语句已经正确。
就算把代码直接放在 fm1_product窗口上也是一样。
回复
zeallag1 2005-03-07
up
回复
chenyuchengfeng 2005-03-07
up
回复
lxhdxlxh1 2005-03-07
'================================================================
'过程名称:ShowDataTable
'输入参数:SQL 是用来传入sql语句
' objTable 是传入DataTable
' Type 是传入是文本命令还是存储过程,(预留的还没有用)
' MsgStr 是传入再没有数据是提示的信息
'输出参数:无
'目 的:此过程填充DataTable
'原 作 者:刘晓航
'创建时间:2003.12.10
'修 改 者:刘晓航
'修改时间:2003.12.10
'================================================================
Public Sub ShowDataTable(ByVal SQL As String, ByVal objTable As DataTable, Optional ByVal Type As String = "1", Optional ByVal MsgStr As String = "A")
Dim objAd As New OleDbDataAdapter
If objconn.State = ConnectionState.Closed Then
objconn.Open()
End If

objAd.SelectCommand = New OleDbCommand
objAd.SelectCommand.Connection = objconn
Try
If Type = "1" Then '1表示SQL 文本命令
objAd.SelectCommand.CommandType = CommandType.Text
objAd.SelectCommand.CommandText = SQL
objAd.Fill(objTable)
Else '表示是存储过程

End If
If objTable.Rows.Count < 1 Then
If MsgStr = "A" Then
MsgBox("数据库中无相关记录!", , "系统提示")
ElseIf MsgStr = "False" Then
Exit Try
Else
MsgBox(MsgStr, , "系统提示")
End If
End If
Catch ex As Exception
MsgBox("数据库中无相关记录!", , "系统提示")
End Try
End Sub
回复
haoztao 2005-03-07
DataGrid.filter
回复
hamadou 2005-03-07
贴代码出来!
回复
zhangyanlei 2005-03-06
你能不用DATASET过滤吗?

试试DATAGRID的SELECT方法
回复
zeallag1 2005-03-06
自己再顶一下
回复
zeallag1 2005-03-06
代码已经正确执行了,又加了DataGrid1.Refresh(),还是不行,
回复
Eddie005 2005-03-06
winform吗?
首先跟踪一下代码是否正确执行,
另外fill()后加上DataGrid1.Refresh()
回复
zeallag1 2005-03-06
up
回复
相关推荐
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2005-03-06 08:03
社区公告
暂无公告