【问题标题】:Update database table from checkboxlist从复选框列表更新数据库表
【发布时间】:2015-04-12 09:47:17
【问题描述】:

我有一个简单的复选框列表,它绑定到一个数据库表(有两列 hobbyId 和 hobbyName)。所以如果我选择一些爱好并点击更新,它会更新一个不同的表(有 8 个爱好名称的 8 列)一个特定的用户 ID。但我什至无法开始为我的“更新”按钮编写代码。我搜索了一个解决方案,我得到的只是代码,它为每个爱好创建一个新记录到一个新行或全部选中一列中的项目用逗号分隔。但我希望每个项目都绑定到具有相同 hoobyname 的列。任何帮助将不胜感激。

这是我想要更新的爱好表。

 Create table tblInterest
 (
 Id int primary key identity,
 UserId varchar(10),
 Athletics varchar(1) default 0,
 Cycling varchar(1) default 0,
 EquestrianSports varchar(1) default 0,
 MotorSports varchar(1) default 0,
 Marathon varchar(1) default 0,
 Volleyball varchar(1) default 0,
 Tennis varchar(1) default 0,
 Badminton varchar(1) default 0,
 Basketball varchar(1) default 0
 )

UserId 来自一个标签,一旦生成新用户,就会生成一个新行,所有爱好的默认值为 0。

【问题讨论】:

  • 您的数据库设计完全是错误的。您应该删除 tblInterest 并创建一个仅包含用户 ID 和爱好 ID 的新表。该表应该对用户表和爱好表有外键约束,并且它的主键应该是它的 2 列的组合。这样,当您在系统中添加或删除爱好时,您不需要更改数据库结构。

标签: asp.net sql-server checkboxlist


【解决方案1】:

您可以创建两个表来存储此信息。 假设您已经有一个带有 Id 字段的用户表...

tblInterest
tblInterest.interestId
tblInterest.interestName

tblUserInterest
tblUserInterest.interestId
tblUserInterest.userId

第一个表 tblInterest 将包含存储在 interestName 字段下的田径、自行车等数据。

您将使用此表对您的复选框列表进行数据绑定以生成列表。 要进行更新,在提交表单时,您将遍历复选框列表中的每个项目,并对匹配的 userId 和 interestId 分别向 tblUserInterest 表(这称为联结表或交叉表)发出添加或删除查询。

此代码将帮助您处理结果:

https://msdn.microsoft.com/en-us/library/8bw4x4wa(VS.71).aspx

此代码将帮助您对复选框列表进行数据绑定,并且还具有帮助您处理结果的代码:

http://www.dotnetfox.com/articles/how-to-bind-data-to-checkboxlist-control-in-Asp-Net-using-C-Sharp-1042.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 2012-07-05
    • 2016-11-30
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多