可能问得很外行,怎样才能从SQL SERVER中用程序(C#)读出表的结构(列名,类型等)

mlab 2002-04-30 07:37:33
如题目
...全文
63 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vm58 2002-06-23
  • 打赏
  • 举报
回复
zag(急弯)的办法不错,可以一试
zag 2002-06-22
  • 打赏
  • 举报
回复
表名从sysObjects表中取,
列从sysColumns表中取,
类型从sysTypes表中取,
将三个表结合在一起使用,会收到意想不到的结果,
不明白的地方,可以看看SQL Server中的OnLineBook中的系统表,这三个表的表结构在那都有详细的介绍。
softzhou 2002-06-18
  • 打赏
  • 举报
回复
试试用DataSet的Find()方法,能否实现
行者134km 2002-06-17
  • 打赏
  • 举报
回复
select top 0
*
from yourtable
然后再填充数据集
火鸟李国平 2002-05-14
  • 打赏
  • 举报
回复
看看
mlab 2002-05-10
  • 打赏
  • 举报
回复
是个办法,如果非要查找系统表的话,有没有什么关键字之类的可以在select中确定:如果有此列就插入,没有的话不要抛出异常
badtank 2002-05-09
  • 打赏
  • 举报
回复
try this:
if exists(select name from dbo.syscolumns where id=(select id from dbo.sysobjects where name='yrTableName') and name='yrFieldName')
select yrFieldName from yrTableName
badtank 2002-05-09
  • 打赏
  • 举报
回复
fzhfeng(飞梦) 的方法试验通不过。
这种从多个表联合查询的SQL语句,
1、自己记下来那些字段从那个表里读出来的,记录到xml文档里。
2、使用视图
fzhfeng 2002-05-08
  • 打赏
  • 举报
回复
sting select = "SELECT *
FROM tablename
WHERE cloummn = @parameter";
SqlCommand sqlCommand = new SqlCommand("select", conn);
........
mlab 2002-05-08
  • 打赏
  • 举报
回复
好像这样的话ado会把cloummn当作用户的列名而不是sql关键字
所以也不成功
mlab 2002-05-06
  • 打赏
  • 举报
回复
可能我没说清楚,象select top n * from atable 这样的语句只能得出某个表的所有列,我是想象查找数据一样查找一个表是否包含指定的列(比如给出列的类型,名称);因为我遇到的问题要求把好几个表联合查询出来的数据修改后更新数据库,但在更新时,由于程序结构要求,此时只知道数据的列名类型,修改后的数据。所以需要确定不同的列各出自哪个表。
chechy 2002-05-01
  • 打赏
  • 举报
回复
SqlDataAdapter da = new SQLDataAdapter("Select * from ATable where 1=0", YourSqlConnection);
DataSet ds = new DataSet();
da.Fill(ds, "ATable");
DataTable dt = ds.Tables["ATable"];
foreach(DataColumn dc in dt.Columns)
{
dc.ColumnName //列名
dc.DataType //类型
}

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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