用VB.NET连接ACCESS取出ACCESS中的所有表名和字段名

用VB.NET连接ACCESS取出ACCESS中的所有表名和字段名,第1张

Public conn As New ADODBConnection

Public Rs As New ADODBRecordset

Public db As String

Private sSQL As String

Private Sub Form1_Load(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles MyBaseLoad

db = "C:\Documents and Settings\ws01\デスクトップ\新しいフォルダ\WindowsApplication1\db1mdb"

db = "Provider=MicrosoftJetOLEDB40;Persist Security Info=False;Data Source=" & db

connCursorLocation = ADODBCursorLocationEnumadUseClient

connOpen(db)

Rs = connOpenSchema()

End Sub

给你一个获取一个数据表全部字段名的代码,其余你自己琢磨吧(不清楚你的数据表结构):

RSOpen "SELECT FROM zd_lx",conn,1,2

Set FID=RSFields

For EACH FID In RSFields

KK(i)=FIDName

i=i+1

Next

<%

function fieldType(e)

select case etype

case "2"

fieldType="整型"

case "3"

fieldType="长整型"

if eAttributes="90" then fieldType="自动编号"

case "6"

fieldType="货币"

case "11"

fieldType="是/否"

case "7"

fieldType="日期/时间"

case "202"

fieldType="文本("&eDefinedSize&")"

case "203"

fieldType="备注"

case "205"

fieldType="OLE 对象"

case else

fieldType="未知"

end select

end function

%>

上面的不全,还可以自己添加

假设已经打开了数据集rs

<%for each cols in rsfields%>

<%=colsname&"["&fieldType(cols)&"]"%><br /><%next%>

我用了ADO来连接Access数据库,然则,我却无法读去Access的表的字段的标题(Caption),只能获得字段的名称,结不雅如许使得的我很麻烦,请问有没有什么办法能实现攫取标题?

//fileName是你的文件名(含路径),tableName是你的表名

string accessConnection = "Provider=MicrosoftJetOLEDB40;Data Source=" + fileName;

OleDbConnection connection = new OleDbConnection(accessConnection);

connectionOpen();

DataTable schemaColumns = connectionGetOleDbSchemaTable(OleDbSchemaGuidColumns, new string[] { null, null, tableName, null });

DataTable primaryKeys = connectionGetOleDbSchemaTable(OleDbSchemaGuidPrimary_Keys, new string[] { null, null, tableName });

connectionClose();

foreach(DataRow row in schemaColumnsRows)

{

   // row["COLUMN_NAME"]ToString() 便是column名称

}

foreach(DataRow row in primaryKeysRows)

{

   // row["COLUMN_NAME"]ToString() 便是主键的column名称,如果你只想选第一个主键,可以用primaryKeysRows[0]["COLUMN_NAME"]ToString()

}

代码如下:

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlPreparedStatement;

import javasqlResultSetMetaData;

import javasqlSQLException;

public class TestDemo {

public static Connection getConnection() {

Connection conn = null;

try {

ClassforName("commysqljdbcDriver");

String url = "jdbc:mysql://数据库IP地址:3306/数据库名称";

String user = "数据库用户名";

String pass = "数据库用户密码";

conn = DriverManagergetConnection(url, user, pass);

} catch (ClassNotFoundException e) {

eprintStackTrace();

} catch (SQLException e) {

eprintStackTrace();

}

return conn;

}

public static void main(String[] args) {

Connection conn = getConnection();

String sql = "select from AccessType";

PreparedStatement stmt;

try {

stmt = connprepareStatement(sql);

ResultSet rs = stmtexecuteQuery(sql);

ResultSetMetaData data = rsgetMetaData();

for (int i = 1; i <= datagetColumnCount(); i++) {

// 获得所有列的数目及实际列数

int columnCount = datagetColumnCount();

// 获得指定列的列名

String columnName = datagetColumnName(i);

// 获得指定列的列值

int columnType = datagetColumnType(i);

// 获得指定列的数据类型名

String columnTypeName = datagetColumnTypeName(i);

// 所在的Catalog名字

String catalogName = datagetCatalogName(i);

// 对应数据类型的类

String columnClassName = datagetColumnClassName(i);

// 在数据库中类型的最大字符个数

int columnDisplaySize = datagetColumnDisplaySize(i);

// 默认的列的标题

String columnLabel = datagetColumnLabel(i);

// 获得列的模式

String schemaName = datagetSchemaName(i);

// 某列类型的精确度(类型的长度)

int precision = datagetPrecision(i);

// 小数点后的位数

int scale = datagetScale(i);

// 获取某列对应的表名

String tableName = datagetTableName(i);

// 是否自动递增

boolean isAutoInctement = dataisAutoIncrement(i);

// 在数据库中是否为货币型

boolean isCurrency = dataisCurrency(i);

// 是否为空

int isNullable = dataisNullable(i);

// 是否为只读

boolean isReadOnly = dataisReadOnly(i);

// 能否出现在where中

boolean isSearchable = dataisSearchable(i);

Systemoutprintln(columnCount);

Systemoutprintln("获得列" + i + "的字段名称:" + columnName);

Systemoutprintln("获得列" + i + "的类型,返回SqlType中的编号:"+ columnType);

Systemoutprintln("获得列" + i + "的数据类型名:" + columnTypeName);

Systemoutprintln("获得列" + i + "所在的Catalog名字:"+ catalogName);

Systemoutprintln("获得列" + i + "对应数据类型的类:"+ columnClassName);

Systemoutprintln("获得列" + i + "在数据库中类型的最大字符个数:"+ columnDisplaySize);

Systemoutprintln("获得列" + i + "的默认的列的标题:" + columnLabel);

Systemoutprintln("获得列" + i + "的模式:" + schemaName);

Systemoutprintln("获得列" + i + "类型的精确度(类型的长度):" + precision);

Systemoutprintln("获得列" + i + "小数点后的位数:" + scale);

Systemoutprintln("获得列" + i + "对应的表名:" + tableName);

Systemoutprintln("获得列" + i + "是否自动递增:" + isAutoInctement);

Systemoutprintln("获得列" + i + "在数据库中是否为货币型:" + isCurrency);

Systemoutprintln("获得列" + i + "是否为空:" + isNullable);

Systemoutprintln("获得列" + i + "是否为只读:" + isReadOnly);

Systemoutprintln("获得列" + i + "能否出现在where中:"+ isSearchable);

}

} catch (SQLException e) {

eprintStackTrace();

}

}

}

1连接Access数据库代码!版本 2

支持库 eDB 如果 (数据库连接连接Access (MDB数据库, “”) = 真)

记录集置连接 (数据库连接)

排序条件 = “字段,表名,条件”

如果 (记录集打开并排序 (MDB数据表, 排序条件) = 真) 否则 销毁 ()

2填充树形框字段到父项目代码!版本 2

支持库 eDB

支持库 iext局部变量 分类变量, 文本型

局部变量 树项目总数, 整数型

局部变量 树循环循环, 整数型

局部变量 临时项目文本, 文本型

局部变量 是否存在重复, 整数型

记录集到首记录 ()

判断循环首 (记录集尾记录后 = 假)

记录集读文本 (“字段”, 分类变量)

树项目总数 = 树型框取项目数 ()

如果 (树项目总数 = 0)

树型框加入项目 (, 分类变量, , , )

否则

计次循环首 (树项目总数, 树循环循环)

临时项目文本 = 树型框取项目文本 (树循环循环 - 1)

如果 (临时项目文本 = 分类变量)

是否存在重复 = 1

跳出循环 ()

否则

是否存在重复 = 0

如果结束

树循环循环 = 树循环循环 + 1

计次循环尾 ()

如果真 (是否存在重复 = 0)

树型框加入项目 (, 分类变量, , , )

如果真结束 如果结束 记录集到下一条 ()

判断循环尾 ()

3填充表名到树形框子项目并过滤树形框存在的重复项!版本 2

支持库 iext

支持库 eDB局部变量 原项目变量, 整数型

局部变量 原项目循环, 整数型

局部变量 项目数组, 文本型, , "0"

局部变量 原项目文本, 文本型

局部变量 新项目变量, 整数型

局部变量 新项目循环, 整数型

局部变量 新项目文本, 文本型

局部变量 新项目标题, 文本型

局部变量 过滤语句, 文本型

局部变量 文本数组, 文本型, , "0"

局部变量 文本变量, 文本型

局部变量 数组成员, 整数型

局部变量 数组循环, 整数型

局部变量 次数数量, 整数型

局部变量 项目变量, 整数型

局部变量 循环变量, 整数型

局部变量 次数循环, 整数型

原项目变量 = 树型框取项目数 ()

原项目循环 = 1

计次循环首 (原项目变量, 原项目循环)

加入成员 (项目数组, 树型框取项目文本 (原项目循环 - 1))

计次循环尾 ()

数组成员 = 取数组成员数 (项目数组)原项目文本 = 项目数组 [数组循环]

过滤语句 = “字段” + “=” + “'” + 原项目文本 + “'”

如果 (记录集过滤记录 (过滤语句) = 真)

次数数量 = 记录集记录数量

清除数组 (文本数组)

计次循环首 (次数数量, 次数循环)

记录集读文本 (“表名称”, 文本变量)

加入成员 (文本数组, 文本变量)

次数循环 = 次数循环 + 1

记录集到下一条 ()

计次循环尾 ()

项目变量 = 树型框取项目数 ()

计次循环首 (项目变量, 循环变量)

树型框置项目数值 (循环变量 - 1, 循环变量)

计次循环尾 ()否则

以上就是关于用VB.NET连接ACCESS取出ACCESS中的所有表名和字段名全部的内容,包括:用VB.NET连接ACCESS取出ACCESS中的所有表名和字段名、vb如何获取access中有数据那一列的字段名、用SQL语句怎么查询access 数据库中的表字段名称。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9529423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存