怎么样用获取数据表的列名

怎么样用获取数据表的列名,第1张

在jdbc执行一个sql语句的话,就会把sql语句对应的列都已元数据的形式提供给你,你可以根据元数据获取到列的信息

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import oraclejdbcdriverOracleResultSetMetaData;

public class DbTest {

public static void main(String[] args) {

Connection con = null;

ResultSet rs = null;

PreparedStatement stmt = null;

try {

ClassforName("oraclejdbcdriverOracleDriver")newInstance();

String url="jdbc:oracle:thin:@ip:port:servID"; //数据库连接字符串

String user="user"; //用户名

String password="pswd"; //密码

con = DriverManagergetConnection(url,user,password); //获取连接

//这里的sql为一个查询结果为0条记录的sql,目的是只获取元数据信息

stmt = conprepareStatement("SELECT FROM TEST_TABLE WHERE 0 = 1");

rs = stmtexecuteQuery();

//下面的即为执行结果集的元数据,即使查询结果没有数据,该元数据还是存在

OracleResultSetMetaData rsmd = (OracleResultSetMetaData)rsgetMetaData();

int columnCnt = rsmdgetColumnCount(); //列的数量

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

//打印列名

Systemoutprintln(rsmdgetColumnName(i));

}

} catch (Exception e) {

//发生异常,执行异常处理

eprintStackTrace();

} finally {

if (rs != null) {

//关闭结果集

try {

rsclose();

} catch (Exception e) {

}

}

if (stmt != null) {

//关闭statement

try {

stmtclose();

} catch (Exception e) {

}

}

if (con != null) {

//关闭连接

try {

conclose();

} catch (Exception e) {

}

}

}

}

}

如果是根据数据获取,我想你可以这样

DataTable 中有DataColumnCollectoin属性,这是所有列的集合对象,可以遍历来获取列名。

------------------------------------------------------

也可以调用系统表来获得某一数据库的表信息

当然。net里也很方便,利用 IDataReader 接口的 GetSchemaTable 方法即可获得表的元数据,自己再整理一下就可以现实了。

关于:GetSchemaTable (受 NET Framework 精简版的支持。)

返回一个 DataTable,它描述 IDataReader 的列元数据。

具体代码可以参照:

string sql = "select from xxx";

DataTable schemaTable = null;

SqlCommand cmd = new SqlCommand( sql, conn );

cmdConnectionOpen();

SqlDataReader rdr = cmdExecuteReader(SystemDataCommandBehaviorSchemaOnly );

schemaTable = rdrGetSchemaTable();

// SystemDataCommandBehaviorSchemaOnly

只提取架构,不对数据做任何 *** 作

返回的这个数据架构元数据(DataTable)你可以尽情显示,呵呵

备注:

用于 OLE DB 的 NET Framework 数据提供程序的 GetSchemaTable 方法的实现,映射到 OLE DB IColumnsRowset::GetColumnsRowset 方法,而用于 SQL Server 的 NET Framework 数据提供程序的实现则不使用 OLE DB 提供程序层。GetSchemaTable 按以下顺序返回有关每列的元数据:

MSDN介绍地址:

ms-help://MSVSCC2003/MSMSDNQTR2003FEB2052/cpref/html/frlrfsystemdataidatareaderclassgetschematabletopichtm

select from 学生表。。。

所有列

select [id], [name] from [sysobjects] where [type] = 'u' order by [name] 所有表

以上就是关于怎么样用获取数据表的列名全部的内容,包括:怎么样用获取数据表的列名、如何在c#中 获取sql某表列名 并显示在窗口界面上、SQL如何列出表名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存