狐表杂项中有一个窗口,SQLExcuter选择数据源(是ip下面的一个数据库)
语句S elect name From Sysusers Where islogin = '1'
就列出了这个数据库的所有用户
如果要列出另一个数据库的用户,就需要更换数据源(及同一ip的另一个数据库)
我现在想把每个数据库的的用户单独列出来,
语句应该怎么写,老师指点一下
第一步:获取IP地址下所有数据库名S elect Name From Master..SysDatabases Order By Name
第二步:?
遍历这些数据库名称呗……
Dim dt As DataTable = cmd.ExecuteReader()
for each dr as datarow in dt.datarows
cmd.CommandText = "Select name From “ & dr("name") & ” Where islogin = '1'"
……
next
Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.CommandText = "Sel ect Name From Master..SysDatabases Order By Name"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.datarows
Dim dt2 As DataTable
Dim cmd2 As New SQLCommand
cmd2.CommandText = "Sel ect name From " & dr("name") & " Where islogin = '1'"
dt2 = cmd2.ExecuteReader()
OutPut.Show(dt2.GetComboListString("name"))
Next
我这样试过,会出错,红色部分,如果把数据库名放在那里出错,显示对象名无效,用Sysusers却没有问题
[此贴子已经被作者于2023/10/17 9:52:22编辑过]
说明jjkabc这个数据库里没有Sysusers这个表。能够保证所有数据库都有同样的用户表吗?
SQLExcuter窗口的逻辑,数据源对应数据库
同一语句 Sele ct name From Sysusers Where islogin = '1'"
不同数据库得出不同用户名
‘数据库名称’ 的参数肯定是带进去了,语句是否作了调整?
好了,OK,谢谢老师!cmd2.CommandText = "Sele ct name From " & dr("Name") & ".dbo.Sysusers Where islogin = '1'"