我想插入从列表视图数据的多个行数据库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