有什么方法可以从C#中的连接字符串获取表层次结构?

| 我目前有一个要求,以便从c#中的sql语句确定表层次结构。例如,考虑以下sql语句:
Select Table1.*, Table2.* from Table1 
left join table2 on Table1.parentCol = Table2.childCol
这可能返回7列,表1返回3列,表2返回4列。我需要知道列名,并且理想情况下(尽管不是强制性的)知道它们的类型。 我无法控制将使用哪种SQL语句,因为这是用户输入的字段。在C#中,打开连接并使用该语句创建SqlCommand是一项非常基本的任务。我可以自由地将SQL运行到SqlDataReader或任何其他System.Data.SqlClient类(如果需要)中,但是我找不到任何可以返回列的组合,而不是实际的列值。 有人能帮忙吗? 致以真诚的感谢和诚挚的问候     
已邀请:
您不能(轻松地)完成所要问的事情。 更重要的是,不要让用户输入任意的TSQL(您有时会后悔...)。 而是创建一个\'Search \'表单,该表单允许输入各种参数,并在连接了所需的所有表/列的视图上使用参数化查询。     
没有直接的方法。您需要解析sql查询中所有表的名称。 完成此操作后,您将需要在Information_Schema上编写一些查询,以获取所需的原始数据。 如果您使用的是SQL Server,则可能要使用目录视图 前
Select * from sys.tables where [Name] = \'MyTable\'
    

要回复问题请先登录注册