尝试使用DropDownList和TextBox控件更新GridView控件中的行时遇到错误。GridView包含一个TemplateField和一个DropDownList控件(用于“Status”列),以及一个EditItemTemplate和一个TextBox控件(用于其他列)。DropDownList中填充了状态选项,当我尝试更新行时,收到以下错误消息:
“System.Data.SqlClient.SqlException:无法将值NULL插入到表“Karlo_Miskovic.dbo. Narudžba”的列“ID status”中;列不允许空值。更新失败。”
我已经检查了我的代码,并确保DropDownList控件具有选定的值,TextBox控件具有适当的值。但是,错误仍然存在。我将感谢任何关于解决这个问题的见解或建议。
下面是相关的代码片段:.asxp:
<asp:TemplateField HeaderText="Status" SortExpression="Status">
<EditItemTemplate>
<asp:DropDownList ID="ddlStatus" runat="server" SelectedValue='<%# Bind("[Status]") %>'>
<asp:ListItem Text="Neobrađeno" Value="Neobrađeno"></asp:ListItem>
<asp:ListItem Text="U obradi" Value="U obradi"></asp:ListItem>
<asp:ListItem Text="Završeno" Value="Završeno"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server" Text='<%# Bind("[Status]") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
字符串
.vb:
Protected Sub GridView1_RowUpdating(sender As Object, e As GridViewUpdateEventArgs)
' Retrieve the new values entered by the user
Dim orderID As Integer = Integer.Parse(GridView1.DataKeys(e.RowIndex).Value.ToString())
Dim deliveryDate As Date = Date.Parse(CType(GridView1.Rows(e.RowIndex).FindControl("txtDatumIsporuke"), TextBox).Text)
Dim status As String = CType(GridView1.Rows(e.RowIndex).FindControl("ddlStatus"), DropDownList).SelectedValue
' Other variable assignments...
' Rest of the code...
End Sub
型
我还确保数据库列“ID statusa”未设置为允许空值。尽管采取了这些措施,错误仍然存在。如能协助解决此问题,将不胜感激。
3条答案
按热度按时间xxb16uws1#
添加此代码并重试
字符串
在VB中
型
ccrfmcuu2#
根据项目设置,还可以使用
字符串
ltqd579y3#
我做了这个,它工作。而不是:
字符串
我这样做了:
型