我想将我的所有数据从数据库复制到我将绑定到gridview的通用列表。但我无法做到。我正在做的是:
Collapse | Copy Code
public List<string> fillgridviewDAL()
{
List<string> NameList = (from r in dataset.Tables["MyTableName"].AsEnumerable()
select r.Field<string>("name") + r.Field<string>("age") + r.Field<string>("salary") + r.Field<string>("city")).ToList();
return NameList;
}
当我看到数据集中的内容时,它显示了完整的表,但是当我使用上面的方法使用泛型列表时,它会连接列并在特定索引处给出结果行。简而言之,它以字符串形式提供输出。比如何将gridview绑定到我的通用列表。
答案 0 :(得分:1)
您应该创建保存行数据的类:
public class Item
{
public string Name { get; set; }
public string Age { get; set; }
public string Salary { get; set; }
public string City { get; set; }
}
然后返回List<Item>
:
public List<Item> fillgridviewDAL()
{
List<Item> NameList = (from r in dataset.Tables["MyTableName"].AsEnumerable()
select new Item {
Name = r.Field<string>("name"),
Age = r.Field<string>("age"),
Salary = r.Field<string>("salary"),
City = r.Field<string>("city")
}).ToList();
return NameList;
}
答案 1 :(得分:0)
将使用选定的列
设置网格的DataSource
gridview.DataSource = dataset.Tables["MyTableName"]
.DefaultView.ToTable(false, "name", "age", "salary", "city");
如果您要动态选择列,请假设列名称位于string[]
columns
gridview.DataSource =dataset.Tables["MyTableName"].DefaultView.ToTable(false, columns);
答案 2 :(得分:0)
不确定我理解你想要达到的目标。也许一个字典列表可以做到这一点。虽然没试过。希望这会有所帮助
public List<Dictionary<String, object>> fillgridviewDAL()
{
List<Dictionary<String, object>> rows =
dataset.Tables["MyTableName"]
.AsEnumerable()
.Select(
row =>
row.Table.Columns
.Cast<DataColumn>()
.ToDictionary(column => column.ColumnName,
column => row[column]))
.ToList();
return rows ;
}
或者,如果您只对这些值感兴趣,可以选择List<List<Object>>
,如下所示:
public List<List<object>> fillgridviewDAL()
{
DataSet dataset = null;
List<List<object>> rows =
dataset.Tables["MyTableName"]
.AsEnumerable()
.Select(
row =>
row.Table.Columns
.Cast<DataColumn>()
.Select(column => row[column]).ToList())
.ToList();
return rows;
}