C# 从sql适配器生成数据列

C# 从sql适配器生成数据列,c#,sql,C#,Sql,是否有一种方法可以使用sql适配器将sql查询结果转换为数据列。我是一个新的数据表。我需要动态构建它,因为我的列名存储在sql表中。我没能找到这个话题。我一直在运行数据行而不是列。grr到目前为止我所建造的。。提前谢谢 string feedcolumns = @"select FeedColumnName from myTable where FeedProcessID = @feedprocessid"; SqlCommand columnscommand = ne

是否有一种方法可以使用sql适配器将sql查询结果转换为数据列。我是一个新的数据表。我需要动态构建它,因为我的列名存储在sql表中。我没能找到这个话题。我一直在运行数据行而不是列。grr到目前为止我所建造的。。提前谢谢

   string feedcolumns = @"select FeedColumnName from  myTable where FeedProcessID = @feedprocessid";

        SqlCommand columnscommand = new SqlCommand(feedcolumns, connUpd);
        DataTable dt = new DataTable("datafeed");


        foreach(DataColumn dc in dt.Columns)
        {
             dc = new 
            dt.Columns.Add(dc);


        }

您可以直接从SqlReader填充数据表,无需逐列填充。 我注意到的一件事是,您的SQL语句中有一个从未分配给command对象的参数,因此我将其添加到

string feedcolumns = "select FeedColumnName from  myTable where FeedProcessID = @feedprocessid";

DataTable dt = new DataTable("datafeed");

using (SqlConnection connUpd = new SqlConnection("MyConnection")) {
    using (SqlCommand columnscommand = new SqlCommand(feedcolumns, connUpd)) {
        columnscommand.Parameters.AddWithValue("@feedprocessid", feedprocessid);

        connUpd.Open();

        var dataReader = columnscommand.ExecuteReader();

        dt.Load(dataReader);
    }
}

您正在寻找的方法是
DataAdapter.Fill(dt)
数据表的
集合将从查询的结果集动态填充。你没有必要自己做那件事。这些列适用于表中的所有行,它们的列索引对应于每行中的字段索引。您还可以通过其列名对行中的每个字段进行寻址:
dr.Rows[rowindex][“columnname”]