修改数据库中的数据到gridview

Posted

技术标签:

【中文标题】修改数据库中的数据到gridview【英文标题】:Modify data from database to gridview 【发布时间】:2014-09-17 05:05:36 【问题描述】:

我有一个数据库,其中有一列名为“代码”。当这列代码显示在gridview中时,我想修改该列的内容。例如:

在数据库中,如果代码列包含 A、B 和 C 值,则在 gridview 中应该显示 Abeloth(而不是 A)、Bollux(而不是 B)、Chewbacca(而不是 C)。

谢谢

更新:

我添加了以下代码,我错过了什么?

Protected Sub GrvPassengerReport_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GrvPassengerReport.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then

             If e.Row.Cells(8).Text = "C" Then
            e.Row.Cells(8).Text = "Chewbacca"
        End If
        End If
    End Sub

【问题讨论】:

因为很多人都搞错了,我能否确认这是一个带有GridView 控件的Web Forms 应用,而不是带有DataGridView 的Windows Forms 应用? 是的,它是一个带有 GridView 控件的 Web 窗体应用程序。 我会推荐对同一个表或另一个表中的代码的描述进行翻译,然后加入它以获得您的描述...... 感谢@MrCoDeXeR 的推荐,我限制了对数据库的访问,无法创建或更改表。 我明白了,那你可以创建一个翻译方法来为你做这件事…… 【参考方案1】:

如果您输入 gridview 的“编辑列”选项(并假设您的 sql 连接正确),您应该有两个不同的属性,您需要这样做。

首先,主要的将位于“数据”选项卡下,其名为 DataPropertyName。这是您希望此表格显示的数据的名称(例如年龄、身高或头发颜色)

您在设计选项卡下还有一个名为 (Name) 的字段,这只是网格内的显示名称。

因此,您可以有一个名为 ThePersonsName 的数据库属性名称,并将您的 gridviews DataPropertyName 设置为该名称,然后在(名称)字段中您可以只写名称,它会这样显示。

【讨论】:

【参考方案2】:

实现此目的的一种方法是为 gridview 控件使用“itemdatabound”事件,然后根据数据库表中的实际值决定您希望在 gridview 中显示哪些值。

【讨论】:

该列包含多个选项,因此我在考虑是否可以添加任何“if语句”。例如:If Option A then Show Abeloth End If... 是的,您可以这样做,或者如果可供选择的选项较少,但如果表的列中有很多不同的条目,则可以使用 switch case。那么我建议您使用另一个表通过主键和外键约束来维护这些代码的相应值。 在整个过程中,在哪里可以添加“if语句”? 它会像这样 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.Cells[x].Text == "A" ) e.Row.Cells[ x].Text = "Abeloth"; // 这里 x 是绑定列文本的单元格编号。请记住,单元格编号从 0 开始 我是这个文本编辑器的新手。对于乱码的回复感到抱歉。:) 希望你找到了我想要分享的内容。【参考方案3】:

我能够通过使用 GridView.RowDataBound 事件来解决这个问题。对我有帮助的文章很少

1) MSDN

2) Question on ***

这里是代码

Protected Sub GrvPassengerReport_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GrvPassengerReport.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then

            Dim labelone As System.Web.UI.WebControls.Label
            labelone = e.Row.FindControl("lblcStopType")

            If labelone.Text = "C" Then
                labelone.Text = "Chewbaca"
            End If

        End If
    End Sub

【讨论】:

以上是关于修改数据库中的数据到gridview的主要内容,如果未能解决你的问题,请参考以下文章

C#中gridview已经读取了Excel的数据,但是在主界面上未显示出来

C#如何修改dategridview里头数据

无法将 Gridview 的更改更新到数据库

怎样将LIST中的数据绑定到GridView,并实现增删改查

为啥我使用gridview控件只能显示一行数据

如何在不将数据保存到数据库的情况下更新 Gridview 行