在C#中获取一个表的Schema

Sae*_*eed 12 c# sql

我想在初始化connectionString后在SQL SErver中获取一个名为"Petro"的表的Schema,我使用此代码

conn.open();
conn.getSchema("Tables");
Run Code Online (Sandbox Code Playgroud)

但它返回所有表的模式.我只想要Petro架构.我该怎么办?

Jas*_*ira 18

string[] restrictions = new string[4];
restrictions[2] = "Petro";
DataTable table = conn.GetSchema("Tables",restrictions);
Run Code Online (Sandbox Code Playgroud)

在这里查看更多信息:MSDN:使用GetSchema方法

编辑:使用GetSchema而不是getSchema

  • 此代码将仅返回包含表名称的1行.如果需要获取完整的表模式(所有列及其类型),则代码应如下所示:`conn.GetSchema("Columns",limits);` (3认同)

Sas*_*cha 5

SQL Server 解决方案:

有一个名为sp_columns. 当您使用表的名称作为参数运行该过程时,它将仅返回该表的架构。


Aka*_* KC 5

您可以通过以下方式检索架构:

            string sql = "select * from Petro WHERE 1 = 0";
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader reader = cmd.ExecuteReader();
            DataTable schema = reader.GetSchemaTable();
Run Code Online (Sandbox Code Playgroud)