以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何获得当前数据源名称?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137320)

--  作者:jq_shang
--  发布时间:2019/7/3 13:48:00
--  如何获得当前数据源名称?

Dim cn As Connection = ???

outout.show(cn.name)

我不想列出所有数据源的所有名称,我只想列出当前数据源的名称,请问如何写代码?


另外,如何用代码将外部数据表指定给自定义的用户表?


--  作者:有点蓝
--  发布时间:2019/7/3 14:06:00
--  
没有当前数据源这种说法,只要添加了的数据源都是可用数据源。

如果想要获取当前表的数据源,参考:Output.Show(DataTables("表B").ConnectionName)

--  作者:jq_shang
--  发布时间:2019/7/3 14:37:00
--  
这段代码想写在加载外部数据表之后,也就是项目打开之后用。想要引用当前数据源,再去指定用户自定义的用户表。这两个步骤当前在帮助文档中都找不到例子。帮助文件中的例子,是用硬代码指定的数据源和数据表。

窗口的AfterLoad事件代码为:

Dim cmd As New SQLCo mmand
Dim
dt As DataTable
Dim
lst As WinForm.ListBox = e.Form.Controls("ListBox1")
cmd.ConnectionName =
"User"
cmd.CommandText =
"SEL-ECT DISTINCT Name From {Users}"
dt = cmd.ExecuteReader()


篮板提供的通过当前表获取当前数据源,提供了一个途径,可以试试。谢谢了。


--  作者:有点蓝
--  发布时间:2019/7/3 14:41:00
--  
您的想法是错误的,这种代码数据源名称应该是已知的,哪个表在哪个数据源应该是已知的。
--  作者:jq_shang
--  发布时间:2019/7/3 14:58:00
--  
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim lst As WinForm.ListBox = e.Form.Controls("ListBox1")
Dim sjy As String \'数据源
sjy = DataTables("用户表").ConnectionName
\'MessageBox.show(sjy)
cmd.ConnectionName = sjy
cmd.CommandText = "S ELECT DISTINCT name From {用户表}"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
   lst.Items.Add(dr("name"))
Next
If Lst.Items.Count > 0 Then
    lst.S electedIndex = 0
End If

这样子解决了,测试正常。谢谢篮板。
[此贴子已经被作者于2019/7/3 14:58:03编辑过]

--  作者:jq_shang
--  发布时间:2019/7/3 15:02:00
--  
我想在切换数据源的时候,用户管理窗口的afterload代码不用更改啊。但是我这样做,当前只能保持表名相同。
[此贴子已经被作者于2019/7/3 15:04:26编辑过]