C# 如何在Windows窗体/WPF中为数据库视图(带联接)创建编辑器?

C# 如何在Windows窗体/WPF中为数据库视图(带联接)创建编辑器?,c#,sql,winforms,C#,Sql,Winforms,在WPF/WinForms中为数据库中的某些数据创建快速编辑器的最简单方法是什么,其中数据由SQL Server数据库中的视图表示 假设我有一个表Person{id int,name nvarcharmax,GenderID int,CityID int},其中GenderID和CityID是对表Gender和City的引用。在编辑器中,该人员将显示为“姓名”文本框、“性别”组合框,从“性别”表中选择性别名称,城市栏中也是如此 我可以做一些简单的事情,让一些控件/代码生成它吗?如果我只想选择数据

在WPF/WinForms中为数据库中的某些数据创建快速编辑器的最简单方法是什么,其中数据由SQL Server数据库中的视图表示

假设我有一个表Person{id int,name nvarcharmax,GenderID int,CityID int},其中GenderID和CityID是对表Gender和City的引用。在编辑器中,该人员将显示为“姓名”文本框、“性别”组合框,从“性别”表中选择性别名称,城市栏中也是如此

我可以做一些简单的事情,让一些控件/代码生成它吗?如果我只想选择数据,那么WinForms DataGridView或WPF DataGrid可以为每个属性生成一列,并为集合中的每个对象显示一行。-

如果关系是由外键定义的,是否有类似的神奇控件可以为数据库视图执行此操作


在我看来,成千上万的开发人员都面临着这样的问题——快速创建GUI来编辑与其他表有关系的数据库行,因此应该有某种普遍接受的解决方案。还是每个人都在代码中这样做?或者,如果有其他语言的工具,而不是C语言,而不是Windows窗体(如dBase)来实现这一点。

您描述的是web开发中所谓的脚手架。脚手架是为数据库中的每个表自动生成UI的一种方法。Scaffolding允许您创建一个功能UI,用于根据数据的模式查看和编辑数据。下面是WPF脚手架的两个参考资料

代码项目网站上有一篇WPF脚手架文章: 还有一个Codeplex项目可能会有所帮助:
享受吧

ASP.NET动态数据使用模板为您自动生成UI,该UI将表示您选择的数据库表/视图,包括您想要的自动生成CRUD功能

它甚至可以正确地获取查找表,并自动呈现下拉列表


您知道DataGridView.AutoGenerateColumns属性吗。它可以自动完成很多事情,您可以自定义它,以某种方式覆盖DataGridView。是的,它可以很好地浏览数据,但它不能解决编辑数据的问题。我认为它还应该支持编辑,前提是它认为您的数据源是可编辑的。请在你的问题中解释你提供什么样的数据源。你的数据访问层是什么?如果您使用的是实体框架,则可以将select和Insert/Update/Delete的视图映射到存储的proc,从而控制基础表的更新方式。仅供参考,如果SQL Server从多个表中获取数据,则它本身不允许对视图执行更新。