在C#中将动态列表绑定到GridView(devexpress)的最佳方法是什么?通过说动态列表,我的意思是每次用户从GUI中选择一些值时,在不同表上的数据库上执行选择查询。该表因每个用户选择的值而异,因此没有。并且返回列的类型不固定。
我做了一些搜索,发现字典是一个不错的选择,但还有更好的解决方案吗?任何人都可以请一些粗略的步骤,如何绑定从db获取数据到gridview的字典(不需要确切的代码)。
请注意,我的偏好是尽可能减少代码。
谢谢!
答案 0 :(得分:0)
所以我终于找到了解决方案,并考虑在这里分享以防有人可能需要它。这就是我所做的:
创建一个包含两个属性的类Column和Value可以调用此类Item
创建另一个类ItemList,其中包含上述类(Item)的绑定列表
class ItemList:System.ComponentModel.BindingList<项目>
类ItemList有两个变量_tableName和_primaryKey
用户执行ItemList类的GetList(string TableName)函数并传递tablename。
GetList执行SQL查询,表名作为参数传递给此函数
ct.Append(" SELECT * ");
ct.AppendLine(" FROM ");
ct.AppendLine(TableName);
.....
将项目读取为:
if (dataReader.Read())
{
for (int i = 0; i < dataReader.FieldCount;i++ )
{
dataReader.GetName(i);
dataReader.GetValue(i);
this.Add(TreeItemInfo.GetItem(Convert.ToString(dataReader.GetName(i)),
Convert.ToString(dataReader.GetValue(I)))); } }
项目类中的GetItem:
internal static Item GetItem(string column, string value)
{
Item item = new Item();
item._column = column;
item._value = value;
return item;
}
这样我就可以检索包含列名称及其值的类Item的对象列表。这个解决方案适用于任何表,没有。列的类型没有预先定义。