我正在设计一个小型桌面Windows Forms应用程序来存储用户帐户信息,即用户名和密码。我使用C#/ LINQ to SQL和SQL CE。
该应用程序允许用户创建帐户类别,例如社交媒体/工作/银行,并在这些类别下创建帐户。该应用程序使用户能够创建"动态"帐户,意味着每个类别可以有不同的字段。例如,“社交媒体”下的帐户"类别可能只需要用户名和密码字段。银行"以及"银行"可能需要一个字段来表示路由号码,帐号等。
这里是数据结构的ERD(关系应该很明显,但在此屏幕截图中尚未定义):
这是一个关于前端如何工作的俗气的彩色编码原型:
我面临的问题是如何使用给定类别的所有帐户/凭据填充DataGridView。我相信我应该为DataGridView为数据库中的每个帐户添加一个新行,但我不确定如何使用属于它的凭据填充该行。我的第一个猜测是,我需要查询与行的account_id匹配的所有凭据,并将其插入正确的字段/列。这里的一些逻辑代码似乎暗示这将是一个混乱的解决方案:
foreach (Account acct in context.Accounts)
{
dataGridView.Rows.Add()
foreach (Credential cred in context.Credentials)
{
if (cred.account_id == acct.id)
{
// check to see which field the credential belongs to
// and insert it into that field for the current row
}
}
}
有关更好解决方案的任何建议吗?我可以看到很多问题。作为初学者,我非常愿意重新构建数据库或GUI的其他想法。如果您需要澄清任何事情,请告诉我。
答案 0 :(得分:0)
您是否考虑过使用DataAdapters填充表格?你可以在这里找到一个教程 http://www.dotnetperls.com/datagridview-tutorial