sql2000的就用一句查询语句可以获取哦:
select [name] from sysobjects where xtype = 'U' and [name] <> 'sysdiagrams' order by [name]";看意思应该可以看明白吧,不多罗嗦了,这样我们就把对应数据库的表查询出来了,是不是简单呢,呵呵,就是这样啦。然后我们就要根据表获取对应表的字段的信息了。我们可以对表查询一条记录,以DataTable类型返回,它会映射到数据库的表,包括字段的信息,这样就可以获取了,记住实例化Command时要加上这句
command.MissingSchemaAction = MissingSchemaAction.AddWithKey;
至于作用你可以查查msdn,会有所收获的!

现在比如我们要取主键,就可以这样写 DataColumn [] pk=dt.PrimaryKey;
pk[0]就是主键咯!^_^,具体大家可以多看看msdn,我想收获会更多哦!
Access就比较麻烦点:
1 ADODB.ConnectionClass conn = new ADODB.ConnectionClass();
2 conn.Provider = "Microsoft.Jet.OLEDB.4.0";
3 string connStr = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + this.txtPath.Text;
4 conn.Open(connStr.Substring(connStr.ToLower().IndexOf("data source") + "data source".Length).Trim('=', ' '), null, null, 0);
5
6 ADODB.Recordset rsTables = conn.GetType().InvokeMember("OpenSchema", BindingFlags.InvokeMethod, null, conn, new object[] { ADODB.SchemaEnum.adSchemaTables }) as ADODB.Recordset;
7 while (!rsTables.EOF)
8 {
9 if (!(rsTables.Fields["TABLE_NAME"].Value as string).StartsWith("MSys"))
10 {
11 this.AccessTable.Items.Add(rsTables.Fields["TABLE_NAME"].Value.ToString());
12
13 }
14 rsTables.MoveNext();
15 }
2 conn.Provider = "Microsoft.Jet.OLEDB.4.0";
3 string connStr = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + this.txtPath.Text;
4 conn.Open(connStr.Substring(connStr.ToLower().IndexOf("data source") + "data source".Length).Trim('=', ' '), null, null, 0);
5
6 ADODB.Recordset rsTables = conn.GetType().InvokeMember("OpenSchema", BindingFlags.InvokeMethod, null, conn, new object[] { ADODB.SchemaEnum.adSchemaTables }) as ADODB.Recordset;
7 while (!rsTables.EOF)
8 {
9 if (!(rsTables.Fields["TABLE_NAME"].Value as string).StartsWith("MSys"))
10 {
11 this.AccessTable.Items.Add(rsTables.Fields["TABLE_NAME"].Value.ToString());
12
13 }
14 rsTables.MoveNext();
15 }
要用到ADODB,添加引用先哦!上述代码是从Access中查询所有表的名称,添加到一个checkboxlist上!
其他大都相同,就不多说了!有问题欢迎提出来!(新手一起进步!)下次我们讲一些细节,过程中我们应该会讨论一些技巧,比如用模板生成还是拼凑字符串
