标题:检索出来的数据库数据怎么传送到另一个窗口的datagrid中
只看楼主
wanper
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-4
 问题点数:0 回复次数:7 
检索出来的数据库数据怎么传送到另一个窗口的datagrid中
我用和access数据库编写一个程序,现要将窗口form1中检索出来的数据库信息在窗口form2中的datagrid中显示出来,请问应当怎么办
搜索更多相关主题的帖子: datagrid中 数据库 窗口 检索 access 
2007-06-11 16:50
Viviwei
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:344
专家分:0
注 册:2006-4-11
得分:0 
你认为这样逻辑上合理吗?
你这个将数据保存在虚拟的数据表中DataTable.将其定义为Public 在其它窗口就能访问了.

爱上思考,爱上编程,爱上.net!
2007-06-11 17:10
wanper
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-4
得分:0 

我是这样写的 但是不行 帮忙看看怎么回事
public class .....
public mytable as datatable
........
myconnection.open()
dim mydataset as dataset
dim mydataadpater as oledataadapter("select * from biao",myconnection)
mydataadpater.fill(mydataset,"biao")
mytable.datasource = mydataset("biao")

在另一个窗口运行时 提示mytable no declare 请问怎么回事

2007-06-12 11:24
dreamsnake
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-12
得分:0 
我用的是C#,VB.Net还不会.不过,mytable.datasource = mydataset("biao")这一句,我觉得和我习惯的感觉上是不一样的.我们的用法应该是 mytable = mydataset("biao").
至于用 public 却看不到的原因,按上面的代码是看不出来的吧.不过,你可以尝试把它用类的属性来代替.
2007-06-12 13:42
wanper
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-4
得分:0 

呵呵 mytable.datasource = mydataset("biao") 是我写错了
应该是mytable = mydataset("biao")
用public定义一个变量 在不同的窗口可以直接调用吗
类的属性是什么? 我是新人 帮忙把具体的程序写一下 谢谢了!

2007-06-12 14:05
wasdyjyj
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-5-8
得分:0 
以下是引用wanper在2007-6-12 11:24:09的发言:

我是这样写的 但是不行 帮忙看看怎么回事
public class .....
public mytable as datatable
........
myconnection.open()
dim mydataset as dataset
dim mydataadpater as oledataadapter("select * from biao",myconnection)
mydataadpater.fill(mydataset,"biao")
mytable.datasource = mydataset("biao")

在另一个窗口运行时 提示mytable no declare 请问怎么回事

你用这个Function试试
Private Function MakeNamesTable() As System.Data.DataTable
Dim namesTable As System.Data.DataTable = New System.Data.DataTable("Names")

Dim colum1 As DataColumn = New DataColumn
colum1.DataType = System.Type.GetType("System.String")
colum1.ColumnName = "列名1"
namesTable.Columns.Add(colum1)

Dim colum2 As DataColumn = New DataColumn
colum2.DataType = System.Type.GetType("System.String")
colum2.ColumnName = "列名2"
namesTable.Columns.Add(colum2)
......
MakeNamesTable = namesTable
End Function


'colum1为你要邦定到Table的第一个值colum2为你要邦定到Table的第2列的值
private sub addrow(byval colum1 as string,byval colum2 as string)
Dim myRow As DataRow
myRow = tb.NewRow()
myrow(0)=colum1.tosring '为上面定义的Table加入第一列赋值
myrow(1)=colum1.tostring '同上,第二列
tb.Rows.Add(myRow)
end sub

将tb定义在form2中,public tb as datatable
然后再form1_load里面加入
dim f2 as form2
f2.tb=MakeNamesTable() '就是程序初始化的时候就邦定设置好的表
上面的Function和Sub都是写在Form1中
这些定义完了后就用循环调用上面那个SUB,我只假设你数据库只有2列,所以只设了2个参数,你根据数据库的列自己可以在增加参数,当然Function中也要相应的增加对应的列,我设的参数是字符型,如果你有整形或则Double的话
在Function中 :System.Type.GetType("System.String")
改为System.Type.GetType("System.Int36") 或System.Type.GetType("System.Double")
完成之后,你在form2中加入:DataGridView1.DataSource = dt

2007-06-13 12:19
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 

用实例调用, 就象楼上说的. .或者把mytable放到全局模块中定义成public的...直接访问
但是...为什么不在form2里直接读取呢?

---
ps. 楼上的兄台, 那个...Int36...看起来..还真是...奇怪哦... c( ̄? ̄)a"


女侠,约吗?
2007-06-13 20:46
wasdyjyj
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-5-8
得分:0 
以下是引用野比在2007-6-13 20:46:03的发言:

---
ps. 楼上的兄台, 那个...Int36...看起来..还真是...奇怪哦... c( ̄? ̄)a"

恩,不好意思,写错了,应该是Int32
2007-06-15 09:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-146583-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.183837 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved