实现给定一个数据库连接得到数据库下所有的数据表
来源:互联网 发布:淘宝怎么搜115会员 编辑:程序博客网 时间:2024/05/21 10:49
实现给定一个数据库连接得到数据库下所有的数据表
使用OleDb可以满足这种需要
using System;
using System.Xml;
using System.Data;
using System.Collections;
using System.Data.OleDb;
namespace Generator
{
/// <summary>
/// DBAccess 的摘要说明。
/// </summary>
public class DBAccess
{
public DBAccess()
{
}
private static string ConStr = "";
private static string ConString
{
get
{
if(ConStr == "")
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load("ServerConfig.xml");
string userid = doc.SelectSingleNode("ServerConfig/UserId").InnerText;
string password = doc.SelectSingleNode("ServerConfig/PassWord").InnerText;
string servername = doc.SelectSingleNode("ServerConfig/ServerName").InnerText;
string database = doc.SelectSingleNode("ServerConfig/DataBase").InnerText;
ConStr = "User ID = " + userid + ";Data Source = " + servername + ";Initial Catalog = " + database + ";Provider = SQLOLEDB.1;password = " + password;
}
catch(Exception ex)
{
throw ex;
}
}
return ConStr;
}
}
private static OleDbConnection Con = new OleDbConnection(DBAccess.ConString);
public static OleDbConnection MyConnection
{
get
{
if(Con == null)
{
Con = new OleDbConnection(ConString);
}
return Con;
}
}
/// <summary>
/// 返回所有表
/// </summary>
/// <returns></returns>
public static DataTable GetAllTables()
{
DataTable dt = new DataTable();
try
{
Con.Open();
dt = Con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"});
}
catch(Exception ex)
{
throw ex;
}
finally
{
Con.Close();
}
return dt;
}
/// <summary>
/// 返回指定表的结构
/// </summary>
/// <param name="varTableName"></param>
/// <returns></returns>
public static DataTable GetTheTable(string varTableName)
{
DataTable dt = new DataTable();
DataSet ds = new DataSet();
OleDbDataAdapter Odb = new OleDbDataAdapter("select * from " + varTableName,Con);
try
{
Con.Open();
Odb.FillSchema(ds,SchemaType.Source,varTableName);
}
catch(Exception ex)
{
throw ex;
}
finally
{
Con.Close();
}
return ds.Tables[varTableName];
}
}
}
配置文件
<?xml version="1.0" encoding="utf-8" ?>
<ServerConfig>
<ServerName>localhost</ServerName>
<DataBase>yourdb</DataBase>
<UserId>sa</UserId>
<PassWord>yourpwd</PassWord>
</ServerConfig>
比如说,用一个CheckBoxList来显示所有的表
调用如下:
foreach(DataRow dr in DBAccess.GetAllTables().Rows)
{
this.checkedListBox1.Items.Add(dr["Table_Name"].ToString());
}
- 实现给定一个数据库连接得到数据库下所有的数据表
- 查询得到当前数据库的所有数据表名 和 视图
- linux下c实现得到给定网段的所有IP
- 得到一个数据库的用户连接数
- 如何得到一个ACCESS数据库的所有表名
- 如何得到一个数据表的所有数字型字段???
- pymsql 查询某一数据库的所有数据表
- TreeView实现显示数据库服务器上所有数据库与数据表
- 查询某个数据库下所有用到某张数据表的数据库对象: 存储过程 或 视图
- 关闭数据库下所有连接
- SQLServer下Kill 所有连接到某一数据库的连接
- 怎样将一个数据库里的所有数据表的名字绑定到ComboBox中
- 一个数据库连接池的实现
- 断开数据库的所有连接
- Afinal数据库模块的实现准备(一)_清除所有数据表
- '取某数据库下的数据表
- 轻松得到与数据库的连接字符串
- SQL查找数据库中所有没有主键的数据表脚本
- 根据控件名字和属性动态修改值
- ERP顾问出差遇险记(三).原来客户是伙抢匪
- Linux 技巧:让进程在后台可靠运行的几种方法
- 取得当前鼠标的X,Y坐标
- AS2与AS3的主要差别
- 实现给定一个数据库连接得到数据库下所有的数据表
- Java基础——类型转换
- .net C# Treeview的Node拖动,Node节点上下移动
- 制作服务程序
- 编写有图形界面的 Windows 服务程序
- 关键字加亮--JS方法
- 泛型的继承测试
- hash_map和map的区别
- 使用ADS1.2进行嵌入式软件开发(下)