我想插入從列表視圖數據的多個行數據庫foreach語句
我遇到了一個錯誤,指出:
沒有映射從對象類型System.Web.UI.WebControls.Literal存在於一個已知的託管提供者本地類型
我有這樣的aspx
<asp:ListView ID="lvPODetails" runat="server">
<ItemTemplate>
<tr>
<td>
<asp:Literal ID="ltRefNo" runat="server" Text='<%# Eval("PODetailNo") %>' Visible="false" />
<%# Eval("ProductName")%>
</td>
<td>
<%# Eval("Price", "{0: #,###.00}") %>
</td>
<td><%# Eval("DesiredQuantity") %></td>
<td><asp:TextBox ID="txtQuantity" runat="server" type="number" Text='<%# Eval("DesiredQuantity") %>' class="form-control" /></td>
<td><%# Eval("POAmount", "{0: #,###.00}") %></td>
<td><%# Eval("POAmount", "{0: #,###.00}") %></td>
<td>
</td>
</tr>
</ItemTemplate>
<EmptyDataTemplate>
<tr>
<td colspan="4"><h2 class="text-center">No records found.</h2></td>
</tr>
</EmptyDataTemplate>
</asp:ListView>
這是我插入
protected void btnAdd_Click(object sender, EventArgs e)
{
foreach (ListViewItem item in lvPODetails.Items)
{
TextBox quantity = (TextBox)item.FindControl("txtQuantity");
Literal ltr = (Literal)item.FindControl("ltRefNo");
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "INSERT INTO Inventory VALUES (@ProductID, @Quantity)";
cmd.Parameters.AddWithValue("@ProductID", ltr);
cmd.Parameters.AddWithValue("@Quantity", quantity);
cmd.ExecuteNonQuery();
con.Close();
}
}
我認爲foreach循環是錯誤的.cs,但我不能說什麼是錯的它。
您是不是要找只是'cmd.Parameters.AddWithValue( 「@的ProductID」,ltr.Text); '(最後注意'.Text')? – Andrei