Access查询表名和字段名

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

访问ACCESS数据库我使用的是Oledb方式来访问的。代码如下:sqlConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new

Object[]{null,null,null,"Table"});

此代码返回的即是该数据库中所有的数据表清单,返回值为DataTable,你可以以此为数据源绑定到DataGrid中,来查看其内部数据结构。来具体获取自己所需要内容。

其中sqlConn是一个已经打开的OleDB数据连接的实例。

sqlConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,new Object[]{null,null,strTableName,null});

此代码返回的是指定数据表中的数据列的清单,返回值为DataTable,你可以将此绑定到DataGrid中,来查看其内部数据结构,来获取自己所需的具体内容。

其中sqlConn是一个已经打开的OleDB数据连接的实例。参数strTableName是指定的数据表名称。

获取所有表

string connnectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Xtxx.db.dbwz;

OleDbConnection connection = new

OleDbConnection(connnectionString);

connection.Open();

DataTable table =

connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

foreach (DataRow row in table.Rows)

{

TreeNode treeNode = new TreeNode();

treeNode.Tag = "数据表";

treeNode.Text = row["TABLE_NAME"].ToString();

tvSjk.SelectedNode.Nodes.Add(treeNode);

}

connection.Close();

获取数据表详细信息

string connnectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Xtxx.db.dbwz;

OleDbConnection connection = new

OleDbConnection(connnectionString);

connection.Open();

DataTable table =

connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, sjbmc, null });

int i = 0;

dgv.Rows.Clear();

foreach (DataRow row in table.Rows)

{

dgv.Rows.Add(1);

dgv.Rows[i].Cells["dgv_Mc"].Value =

row["COLUMN_NAME"].ToString(); //字段名称

int lx = int.Parse(row["DATA_TYPE"].ToString()); //字段类型

switch (lx)

{

case2: dgv.Rows[i].Cells["dgv_Lx"].Value = "int"; break;

case3: dgv.Rows[i].Cells["dgv_Lx"].Value = "int"; break;

case4: dgv.Rows[i].Cells["dgv_Lx"].Value = "Single"; break;

case5: dgv.Rows[i].Cells["dgv_Lx"].Value = "double"; break;

case6: dgv.Rows[i].Cells["dgv_Lx"].Value = "decimal"; break;

case7: dgv.Rows[i].Cells["dgv_Lx"].Value = "DateTime"; break;

case11: dgv.Rows[i].Cells["dgv_Lx"].Value = "bool"; break;

case17: dgv.Rows[i].Cells["dgv_Lx"].Value = "byte"; break;

case72: dgv.Rows[i].Cells["dgv_Lx"].Value = "string"; break;

case130: dgv.Rows[i].Cells["dgv_Lx"].Value = "string"; break;

case131: dgv.Rows[i].Cells["dgv_Lx"].Value = "decimal"; break;

case128: dgv.Rows[i].Cells["dgv_Lx"].Value = "string"; break;

default: dgv.Rows[i].Cells["dgv_Lx"].Value = "string"; break;

}

dgv.Rows[i].Cells["dgv_Lx"].Tag =

dgv.Rows[i].Cells["dgv_Lx"].Value.ToString();

dgv.Rows[i].Cells["dgv_Yxk"].Value =

bool.Parse(row["IS_NULLABLE"].ToString()); //允许空

dgv.Rows[i].Cells["dgv_Ms"].Value =

row["DESCRIPTION"].ToString(); //字段说明、描述

dgv.Rows[i].Cells["dgv_Zj"].Value = false;

i++;

}

table =

connection.GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, null); //主键

foreach (DataRow row in table.Rows)

{

if (sjbmc == row["TABLE_NAME"].ToString())

{

for (int j = 0; j < dgv.RowCount; j++)

{

if

(dgv.Rows[j].Cells["dgv_mc"].Value.ToString() ==

row["COLUMN_NAME"].ToString())

{

相关文档
最新文档