现在有一个access,里面的各个表的表名要取出来,放入一个datatable中,但是sql语句:
SELECT Name FROM MsysObjects Where type = 1 and ParentID In (Select ID From MsysObjects Where Name = 'Tables') And Name Not Like 'Msys*')
报msysobjects没有权限,请教高手...
SELECT Name FROM MsysObjects Where type = 1 and ParentID In (Select ID From MsysObjects Where Name = 'Tables') And Name Not Like 'Msys*')
报msysobjects没有权限,请教高手...
解决方案 »
- 在c#中,如何把文件添加到窗体上呢?
- C# 使用XElement 如何在已有的指定目录XML下追加内容
- 查询数据库表后,如何获取查询结果的记录条数(急)
- asp.net MVC如何通过同一个控制器中的两个action读取到同一个View
- c# winform 中能否实现在一个窗体中嵌入另一个窗体?
- 根据输入的一系列字符串选出字符串中最长的,不要调用系统类库和函数。
- 菜鸟求助 ---------------------
- 如何使任务栏里的长条闪烁起来?或换个颜色也行。就向msn messenger在对话窗口没有输入焦点,接收到信息时的样子。
- 非常奇怪的问题!大家看看是谁的错!
- 请问licenses.licx注册机制
- 在c#中自动提交一个页面?急!!!在线等!!
- ◆设置comboBox问题◆
1.给admin访问msysobjects的权限
先在选项里显示系统对象和隐藏对象
然后在工具--->安全--->用户与组权限--->设置对应的权限2。用GetOleDbSchemaTable(推荐)
Public Function GetAccessTables(ByVal conn_access As OleDb.OleDbConnection) As ArrayList
Dim s As New ArrayList conn_access.Open()
Dim dt As DataTable = conn_access.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
conn_access.Close() Dim t As String
Dim dr As DataRow
For Each dr In dt.Rows
t = dr.Item("TABLE_NAME")
If Not s.Contains(t) Then
s.Add(t)
End If
Next Return s
End Function
{
ArrayList s = new ArrayList();
conn_access.Open();
DataTable dt = conn_access.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[]{null, null, null, "TABLE"});
conn_access.Close();
string t;
DataRow dr;
foreach (int dr in dt.Rows) {
t = dr.Item("TABLE_NAME");
if (!(s.Contains(t))) {
s.Add(t);
}
}
return s;
}