怎么获取表的字段名?

zpingy 2004-12-10 03:20:49
我用OleDbConnection已经与一个数据库连接,知道表名,我要获取表的所有字段名。我的办法:通过执行SQL查询语句“SELECT * FROM TABLE”来得到DataTable,然后获取字段名。但是如果执行SQL就会降低效率,有无办法直接通过表名来得到所有的字段名?
...全文
527 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpingy 2004-12-10
  • 打赏
  • 举报
回复
有点意思,多谢了!
brightheroes 2004-12-10
  • 打赏
  • 举报
回复
遗憾的是SqlConnection不提供类似于GetOleDbSchemaTable的方法
Technologytomorrow 2004-12-10
  • 打赏
  • 举报
回复
如果只是SQLSERVER2000,就没有必要用OLEDB,直接用SqlConnection更高效!
brightheroes 2004-12-10
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3600/3600543.xml?temp=.8801844
brightheroes 2004-12-10
  • 打赏
  • 举报
回复
OleDb的功能比较强大

see

http://community.csdn.net/Expert/topic/3600/3600309.xml?temp=.5715906
brightheroes 2004-12-10
  • 打赏
  • 举报
回复
调用如下:

DataTable dt = DBAccess.GetTableColumn(yourTableName);


foreach(DataRow dr in dt.Rows)
{
Console.WriteLine("{0}*********",dr["COLUMN_NAME"].ToString());
}


ps:Con就是你的OleDbConnection
brightheroes 2004-12-10
  • 打赏
  • 举报
回复
我要通用而简单的方法。
----也可以
如下

public static DataTable GetTableColumn(string varTableName)
{
DataTable dt = new DataTable();

try
{
Con.Open();
dt = Con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,new object[]{null,null,varTableName,null});
}
catch(Exception ex)
{
throw ex;
}
finally
{
Con.Close();
}

return dt;
}
zpingy 2004-12-10
  • 打赏
  • 举报
回复
ORACLE 里可以用判断条件:rownum<=1,SQLSERVER里用TOP1,但是都不通用
zpingy 2004-12-10
  • 打赏
  • 举报
回复
TO:cpio(就这么简单) 如果在ORACLE里也能这样用?brightheroes(闭关|那一剑的风情)的方法我已经会了。我要通用而简单的方法。
fireyan 2004-12-10
  • 打赏
  • 举报
回复
这个确实没考虑过,帮你顶
cpio 2004-12-10
  • 打赏
  • 举报
回复
你可以只select top 1 * from table啊
brightheroes 2004-12-10
  • 打赏
  • 举报
回复

/// <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];
}

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧