0

因此,我使用了一个 SQL 数据源,该数据源使用下拉列表的选定值作为参数来触发 Store 过程,以返回众多不同表中的一个。然后我有一个 gridview 使用这个 SQLdatasource 作为它的数据源来显示返回的值。

我想要的是能够在运行时获取列名,以便我可以在以后的方法中使用它。但是,SQLDatasource 似乎没有获取此数据的属性,当我在数据绑定后尝试获取 Datagridview 的列时,gridview 仅显示单个列(自动生成的选择列)。有没有办法解决这个问题?

4

1 回答 1

0

我不知道如何使用 SQLDatasource,但如果您将数据加载到 DataTable 中,您可以在代码隐藏中轻松完成此操作。例如

var dt = new DataTable();
var connectionString = "your connection string";
using (var db = new SqlConnection(connectionString))
{
    var command = new SqlCommand("stored_procedure_name", db);
    command.CommandType = CommandType.StoredProcedure;
    db.Open();
    var reader = command.ExecuteReader();
    dt.Load(reader);
}
var columns = dt.Columns;

每列都有一个 ColumnName 属性。您可以使用 Linq 将列名作为数组获取:

var columnNameArray = dt.Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray();
于 2013-06-17T18:48:53.993 回答