首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从PowerShell sql查询中获取列的名称

从PowerShell sql查询中获取列的名称
EN

Stack Overflow用户
提问于 2017-08-14 23:05:02
回答 2查看 5.5K关注 0票数 0

我正在运行来自PowerShell的sql查询。我可以正确地获得行数据和列数,但我需要从查询中生成的sql表中收集列名。例如,如果我的表是这样的:

代码语言:javascript
运行
复制
    Column1    Column2   
1 |row1Item1 |row1Item2 |
2 |row2Item1 |row2Item2 |
3 |row3Item1 |row3Item2 |

然后我需要的值是"Column1","Column2“。下面的代码将告诉我有2列,但我不知道如何获得这些列的名称。

代码语言:javascript
运行
复制
$cmd = new-object System.Data.SqlClient.SqlCommand($sqlquery, $connection)
$connection.Open()
$reader = $cmd.ExecuteReader()
$reader.FieldCount   #returns the number of columns --> 2
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-14 23:28:45

使用SqlDataAdapter.Fill()而不是阅读器。这样,您就可以让脚本填充一个DataTable对象,该对象将保留列名:

代码语言:javascript
运行
复制
$cmd = new-object System.Data.SqlClient.SqlCommand($sqlquery, $SqlConnection)
$SqlConnection.Open()

# Create adapter, associate with command
$Adapter = [System.Data.SqlClient.SqlDataAdapter]::new($cmd)

# Create empty DataTable
$DataTable = New-Object System.Data.DataTable

# Fill datatable based on query
$Adapter.Fill($DataTable)

$DataTable.Rows[0] # returns a DataRow object with correct column names
票数 2
EN

Stack Overflow用户

发布于 2017-08-14 23:16:49

尝试查找

代码语言:javascript
运行
复制
$table = New-Object System.Data.DataTable

在C#中有一些类似的东西,它更适合于访问从查询中获得的表。

希望它能帮上忙!

编辑:在c#中是这样的

代码语言:javascript
运行
复制
SqlConnection conn = new SqlConnection(ConnectionString); 

SqlDataAdapter da = new SqlDataAdapter(); 

SqlCommand cmd = conn.CreateCommand(); 

cmd.CommandText = SQL; 

da.SelectCommand = cmd; 

DataSet ds = new DataSet(); 

conn.Open(); 

da.Fill(ds); 
conn.Close();return ds;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45677551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档