所以我使用的SQL数据源使用下拉列表的选定值作为参数来触发Store过程,以返回众多不同表中的一个。然后我有一个gridview,它使用这个SQLdatasource作为它的数据源来显示返回的值。
我想要的是能够在运行时获取列名,以便我可以在以后的方法中使用它。但是,SQLDatasource似乎没有获取此数据的属性,当我在数据绑定后尝试获取Datagridview的列时,gridview只显示一个列(自动生成的选择列)。有没有办法解决这个问题?
答案 0 :(得分:0)
我不知道如何使用SQLDatasource,但如果将数据加载到DataTable中,则可以在代码隐藏中轻松完成。 E.g。
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();