以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 全局代码与事件间--值传递的精简,-已用数组解决 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44417) |
-- 作者:jnletao -- 发布时间:2013/12/30 14:17:00 -- 全局代码与事件间--值传递的精简,-已用数组解决 原思路: 全局代码: Public ComboxItemStr As String = "" \'定义字符串,等待事件中传递参数 ‘其实我这里是想把一组数据库行 赋值给combox,现在用的字符串传递,方法很笨 Public Class FormData Inherits System.Windows.Forms.Form Private Sub FormData_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.ComboBoxData = New System.Windows.Forms.ComboBox Me.ComboBoxData.FormattingEnabled = True Me.ComboBoxData.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Dim Values() As String Values = ComboxItemStr.split(",") ‘这里解析字符串,并用items.add赋值,能不能这里直接指定数据源,指定显示值 ??????? For Index As Integer = 0 To Values.Length - 1 Me.ComboBoxData.Items.Add(Values(Index)) Next Me.ComboBoxData.Location = New System.Drawing.Point(85, 27) Me.ComboBoxData.Name = "ComboBoxData" Me.ComboBoxData.Size = New System.Drawing.Size(156, 20) Me.ComboBoxData.TabIndex = 0 BeforeOpenProject事件代码 Dim con As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\之数据源切换\\DBconfig.mdb;Persist Security Info=False") Dim cmd As New System.Data.OleDb.OleDbCommand("Select * FROM 设置", con) Dim DataReader As System.Data.OleDb.OleDbDataReader \'定义DataReader对象 con.Open() DataReader = cmd.ExecuteReader \'执行SQL语句,返回给DataReader对象 While DataReader.Read ComboxItemStr = ComboxItemStr & "," & DataReader("用户可选数据源") End While con.Close() ComboxItemStr = ComboxItemStr.trim(",") \' 这是是用来赋值的 \'先读取外部数据库配置文件 Dim frm As New FormData frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen frm.TopMost = True \'或 e.HideSplashForm = True frm.ShowDialog() \'模式打开 \'请问在以上代码或全局代码中能不能给frm里的comobox用数据源赋值,当然,用数组也行? If ButtonNo Then e.Cancel = True End If If ButtonYes Then \'这里返回的是用户选择的项目,这里是字符串,能不能返回数据行.? msgbox(DataStr) End If 现在的想法 能不能在 事件 里直接 将 数据行 指定给ComboBoxData,并指定显示列 ,当用户选择不同项目时,以方便直接调用 选定记录行的列数据 [此贴子已经被作者于2013-12-31 9:22:10编辑过]
|
-- 作者:Bin -- 发布时间:2013/12/30 14:20:00 -- 呵呵,只能利用SQL查询出来结果,然后拼接字符串. 返回数据行也是不可行的.
|
-- 作者:jnletao -- 发布时间:2013/12/30 14:29:00 -- ,不会吧 |
-- 作者:Bin -- 发布时间:2013/12/30 14:31:00 -- 因为这时还没加载表呢 |
-- 作者:jnletao -- 发布时间:2013/12/30 14:36:00 -- DataReader = cmd.ExecuteReader \'执行SQL语句,返回给DataReader对象 这里不是加载了吗, 后面应该是用.net语法 赋值可以的
|
-- 作者:Bin -- 发布时间:2013/12/30 14:49:00 -- 这样做效率还没有直接拼接字符串的高,你可以查出来一个DataTable变量然后 |
-- 作者:jnletao -- 发布时间:2013/12/30 15:02:00 -- |
-- 作者:逛逛 -- 发布时间:2013/12/30 17:00:00 -- 楼主精神可嘉,俺凑个热闹,提个建议:
从狐表的多项目去考虑一下,如
1、建一个纯粹的本地项目,没有任何外部数据源。 2、建一个默认的用户,空密码,谁来都能登录。 3、在这个项目中去做你想做的,项ping一下连接通不通、数据库是否存在、建一个登录窗口、连接哪个数据库等等 4、最后传参打开你的正式项目
否则,数据源、加载表都用动态的话,狐表的强项和便利性都没有了,得不偿失。 |
-- 作者:y2287958 -- 发布时间:2013/12/30 17:22:00 -- 楼上好想法 |