2015-12-30 3 views
0

Я нахожусь в тупике. У меня есть две формы формы для вставки новых записей. В форме 1 все работает, и все столбцы обновляются в таблице SQL Server.ASP.NET VB.NET подробное представление об обновлении одного столбца в базе данных SQL Server

В форме 2 (которая почти такая же, как первая форма, форма 1 имеет фильтр) не обновляет один столбец в той же таблице SQL Server, используя тот же код, что и в форме 1. Я не знаю Зачем. Когда я разбиваю код позади в форме 2, в раскрывающемся списке появляется правильное значение. Выбранное значение, но когда я нажимаю кнопку вставки, это значение не вставлено.

Вот разметка для формы 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 

Все остальные поля в обеих формах обновляются правильно. Источник данных настроен одинаковым для обеих форм, каждый из которых настроен для вставки и обновления. Что мне не хватает?

спасибо.

ответ

0

Сравните блок try в первом образце с тем, который находится во втором.

Вам не хватает имени пользователя. Это необходимо для работы вашей вставки? (Мы находимся в шаблоне, так что это может быть параметр в вашем источнике данных, который не указан)

Вы также не проверяете страницу. Является во втором образце, но если вы можете нажать точку останова на своей странице вероятно, действителен.

0

Я решил проверить инструкции вставки двух форм. Оказалось, что вторая форма имела более старую версию инструкции insert. Я обновил этот оператор, и все поля загружены в базу данных. Спасибо за вашу помощь.

 Смежные вопросы

  • Нет связанных вопросов^_^