【问题标题】:ASP.NET VB.NET detailsview not updating one column in SQL Server databaseASP.NET VB.NET detailsview 不更新 SQL Server 数据库中的一列
【发布时间】:2015-12-30 19:35:28
【问题描述】:

我处于静止状态。我有两个 detailsview 表单来插入新记录。在表格 1 中,一切正常,所有列都在 SQL Server 表中更新。

在表单 2 中(与第一个表单几乎相同,表单 1 有一个过滤器)不使用与表单 1 相同的代码更新同一个 SQL Server 表中的一列。我不知道为什么.当我在表格 2 后面的代码上中断时,正确的值出现在下拉列表中。Selectedvalue 但是当我单击插入按钮时,该值没有插入。

这是表格 1 的标记:

<asp:TemplateField HeaderText="Water Body Name*">
    <ItemTemplate>
        <asp:Label ID="lblStreamName" runat="server" Text='<%# Eval("LLIDNUM")%>'   Visible = "true"></asp:Label>
    </ItemTemplate>
    <InsertItemTemplate>
        <asp:DropDownList ID="ddCatalogName" runat="server" AutoPostBack="True" 
             DataSourceID="GetCatalogNames" DataTextField="StreamName" 
             DataValueField="LLIDNUM" AppendDataBoundItems="true"> 
            <asp:ListItem Text="Select" Value="" />
        </asp:DropDownList>
        <asp:ObjectDataSource ID="dsWaterBody" runat="server" TypeName="StreamName"
             SelectMethod="GetCatalogNames">
            <SelectParameters>
                <%--<asp:Parameter Name="HatcheryCodetName"  Type="string" />--%>
                <asp:ControlParameter Name="HatcheryCodePlant" Type="string" ControlID="ddPlantingHatchery" PropertyName="Selectedvalue"/>
            </SelectParameters>
        </asp:ObjectDataSource>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
             ControlToValidate="ddCatalogName" ErrorMessage="Please Enter Water Body Name" 
             Display="Dynamic" ForeColor="Red">*
        </asp:RequiredFieldValidator>
    </InsertItemTemplate>
</asp:TemplateField>

后面的代码:

Private Sub DetailsView1_ItemInserting(sender As Object, e As DetailsViewInsertEventArgs) Handles dvSMasterCurrentYear.ItemInserting
Try
    Dim view As DetailsView = DirectCast(sender, DetailsView)
    Dim username As String = System.Web.HttpContext.Current.User.Identity.Name
    Dim ddCatNum As DropDownList = TryCast(view.FindControl("ddCatalogName"), DropDownList) 
    e.Values.Add("LLIDNUM", ddCatNum.SelectedValue)

    Page.Validate()
    'show a message or throw an exception
    If Not Page.IsValid Then
    End If
Catch ex As Exception
    Throw New Exception(ex.Message)
End Try
End Sub

这是表格 2 的标记代码:

<asp:TemplateField HeaderText="Water Body Name*">
    <ItemTemplate>
        <asp:Label ID="lblStreamName" runat="server" Text='<%# Eval("LLIDNUM")%>' Visible = "true"></asp:Label>
    </ItemTemplate>
    <InsertItemTemplate>
        <asp:DropDownList ID="ddCatalogName" runat="server" AutoPostBack="True" 
             DataSource='<%# GetCatalogNames()%>' DataTextField="StreamName" DataValueField="LLIDNUM" 
             AppendDataBoundItems="true"> 
            <asp:ListItem Text="Select" Value="" />
        </asp:DropDownList>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
             ControlToValidate="ddCatalogName" ErrorMessage="Please Enter Water Body" 
             Display="Dynamic" ForeColor="Red">*
        </asp:RequiredFieldValidator>
    </InsertItemTemplate>
</asp:TemplateField>

表格2的代码:

Private Sub dvNewStockingWater_ItemInserting(sender As Object, e As DetailsViewInsertEventArgs) Handles dvNewStockingWater.ItemInserting
    Try
       Dim view As DetailsView = DirectCast(sender, DetailsView)
       Dim ddCatNum As DropDownList = TryCast(view.FindControl("ddCatalogName"), DropDownList)  

       e.Values.Add("LLIDNUM", ddCatNum.SelectedValue)
    Catch ex As Exception
       Throw New Exception(ex.Message)
    End Try
End Sub

两种表单中的所有剩余字段都会正确更新。两个表单的数据源配置相同,每个表单都设置为插入和更新。我错过了什么?

谢谢。

【问题讨论】:

    标签: asp.net vb.net-2010 detailsview


    【解决方案1】:

    将第一个示例中的 try 块与第二个示例中的进行比较。

    您缺少用户名。您的插入需要这样做吗? (我们在模板中,所以它可能是您的数据源中未列出的参数)

    您也没有在第二个示例中检查 page.IsValid,但如果您可以命中断点,则您的页面可能是有效的。

    【讨论】:

      【解决方案2】:

      我决定检查这两种形式的插入语句。事实证明,第二种形式有一个旧版本的插入语句。我更新了这个语句,所有字段都上传到数据库。谢谢大家的帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-18
        相关资源
        最近更新 更多