面向对象与自定义数据表

wait_ID 2019-05-09 05:25:40

在C#中使用面向对象思维,通常会把需要处理的数据作为一个对象来声明、管理。但是当我们使用的数据表是由用户自定义的时候,如何来解决定义对象的问题?请给位高手指教。
...全文
234 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wait_ID 2019-05-24
  • 打赏
  • 举报
回复
引用 14 楼 张天星 的回复:
web的话,在table里面,指定某个td是否显示。
加载的时候,加载所有数据。
然后根据用户选择的数据,隐藏不想看到的列。
……
winform的话,data和listview,我记得也有隐藏列的选项。
反正就是加载所有数据,然后隐藏指定列,应该就可以满足用户自选的要求了。


这种方式是可以,但是总觉得效率比较低。我的思路是定义一个数据表

DataID int Primary Key,
DataName Char(10),
DataCusCol01 Char(10),
DataCusCol02 Char(10),
DataCusCol03 Char(10)

然后用户在使用前根据自己的需要定义一个视图,通过视图的方式来形成一个针对此用户的专有表来增删改查,但是这种方式在面向过程的程序里比较容易实现,可是在面向对象的思路下如何入手,又如何设计整体框架呢?
秋的红果实 2019-05-19
  • 打赏
  • 举报
回复
你说的数据表,到底是什么? 自定义数据,就是定义一个类,把具体数据项封装进去
wait_ID 2019-05-19
  • 打赏
  • 举报
回复
沉得太快,上去吧!!!
张天星 2019-05-19
  • 打赏
  • 举报
回复
name age qq phone 你web上, table <tr> <td>name</td> <td>age</td> <td>qq </td> <td>phone</td> 然后在js里面,将用户不勾选的列给隐藏掉,应该是可以的。
张天星 2019-05-19
  • 打赏
  • 举报
回复
web的话,在table里面,指定某个td是否显示。 加载的时候,加载所有数据。 然后根据用户选择的数据,隐藏不想看到的列。 …… winform的话,data和listview,我记得也有隐藏列的选项。 反正就是加载所有数据,然后隐藏指定列,应该就可以满足用户自选的要求了。
张天星 2019-05-19
  • 打赏
  • 举报
回复
客户自定义,是用什么显示?
wait_ID 2019-05-10
  • 打赏
  • 举报
回复
引用 9 楼 兔子家族-二哥的回复:
至于你说的定义字段名称 修改dt的列名称就是了 有什么问题?
如果这几个字段在窗体有对应控件,传递回来的记录集已经是用户自定义的,如何对应控件呢?
  • 打赏
  • 举报
回复
至于你说的定义字段名称 修改dt的列名称就是了 有什么问题?
  • 打赏
  • 举报
回复
引用 6 楼 wait_ID 的回复:
比如说有一个数据表(DataTab),结构如下:

DataID int Primary Key,
DataName Char(10),
DataCusCol01 Char(10),
DataCusCol02 Char(10),
DataCusCol03 Char(10)

如果DataCusCol01、DataCusCol02、DataCusCol03列为用户自定义列,用户可以自由选择这三列是否使用,若使用则可自定义字段的名称。针对这样的数据需求,怎么来实现面向对象设计呢?因为我现在的思路不成熟,C#学习也不久,希望一些前辈们指点迷津!



他勾了哪些你记录下来哪些咧, 去后端数据源例如你取出来是 DT 里面去循环展示这三列就行了啊?
可以封公用方法,传列集合 和 dt 进去返回数据源
正怒月神 2019-05-10
  • 打赏
  • 举报
回复
那你可以直接使用datatable或者dataread来读取数据。 通过下标来确定列。 然后统一放到一个model就好了。
wait_ID 2019-05-09
  • 打赏
  • 举报
回复
比如说有一个数据表(DataTab),结构如下:

	DataID int Primary Key,
	DataName Char(10),
	DataCusCol01 Char(10),
	DataCusCol02 Char(10),
	DataCusCol03 Char(10)
如果DataCusCol01、DataCusCol02、DataCusCol03列为用户自定义列,用户可以自由选择这三列是否使用,若使用则可自定义字段的名称。针对这样的数据需求,怎么来实现面向对象设计呢?因为我现在的思路不成熟,C#学习也不久,希望一些前辈们指点迷津!
OrdinaryCoder 2019-05-09
  • 打赏
  • 举报
回复
我理解是不是每一个字段后面跟一个是否显示 当用户选择显示的时候 才在界面中显示 如果是这样 只需要在后台对选择显示的字段加入表中就好了
stherix 2019-05-09
  • 打赏
  • 举报
回复
引用 2 楼 wait_ID 的回复:
表的结构是有的,我的思路是使用一个固定的表,然后让用户在此基础上定义视图。即便是这样,如何定义数据对象呢?也使用那个固定表的结构来定义的话,数据对用户的呈现部分会不会比较麻烦?
视图也有复杂的,也有简单的就是在原来表的基础上筛选几个字段 不过无论哪种,都不是好处理的 我觉得你直接用DataTable来处理数据也可以的,放弃实体类
正怒月神 2019-05-09
  • 打赏
  • 举报
回复
有没有具体一点的业务或逻辑, 光从你的说法来看, 只能使用dictionary或者 dynamic类似的选项。
wait_ID 2019-05-09
  • 打赏
  • 举报
回复
表的结构是有的,我的思路是使用一个固定的表,然后让用户在此基础上定义视图。即便是这样,如何定义数据对象呢?也使用那个固定表的结构来定义的话,数据对用户的呈现部分会不会比较麻烦?
stherix 2019-05-09
  • 打赏
  • 举报
回复
首先得要知道表的结构吧,然后写出或者生成对应的实体类 总不能说表结构是用户在使用软件的时候可以随时改变 那样就没法用实体类来定义了

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧