【问题标题】:Is there no built in way to get a table's schema in ADO.NET?在 ADO.NET 中是否没有内置方法来获取表的架构?
【发布时间】:2011-05-08 13:06:12
【问题描述】:

我想按顺序获取表的架构。 This question and its answer 正是我的问题,也是我想要做的。但是(对我来说)感觉很老套,现在我两岁了,我希望答案已经过时了。是否真的没有办法以原始顺序获取表的模式? (例如 ADOX 的 OpenSchema(adSchemaTables...))?

主观问题:这不是 ADO.NET 中的一个巨大的漏洞!?

【问题讨论】:

    标签: ado.net c#-4.0


    【解决方案1】:
    exec sp_help '<tablename>'
    

    select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = '<tablename>' order by ORDINAL_POSITION
    

    【讨论】:

    • 好吧,看起来更像。至少比 GetSchema 干净
    【解决方案2】:

    您可以在 Connection 对象上使用GetSchema

    【讨论】:

    • GetSchema 以任意顺序返回列(至少是任意的,据我所知),但肯定不是您在 Sql Management Studio 等中看到的顺序。
    • 在 ODBC 或 JDBC 中也没有按顺序排列它们。提供者或驱动程序编写者没有义务按顺序返回它们。
    • 我刚刚意识到我已经找到了正确的方法:您可以在结果中使用 Select 并传入“TABLE_TYPE DESC”等,以任何您喜欢的方式对其进行排序。
    猜你喜欢
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2015-01-31
    • 2021-07-16
    • 2010-09-07
    • 2011-09-25
    相关资源
    最近更新 更多