c#数据表试验
我有一个ASP.NET数据表,我从另一组ASP:TextBox字段中填充该表以存储,然后在单击“添加”按钮时将其批量插入到数据库中。我将System.Web.UI.WebControls.TextBox添加到数据表中,而不是我在字段中输入的数据。有人能告诉我这里的错误吗 代码c#数据表试验,c#,asp.net,datatable,C#,Asp.net,Datatable,我有一个ASP.NET数据表,我从另一组ASP:TextBox字段中填充该表以存储,然后在单击“添加”按钮时将其批量插入到数据库中。我将System.Web.UI.WebControls.TextBox添加到数据表中,而不是我在字段中输入的数据。有人能告诉我这里的错误吗 代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestDataTable._Default"
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestDataTable._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<legend>Add New Order
<div>
<fieldset style="height:200px;">
<asp:Label ID="lblTips" runat="server" ForeColor="White" BackColor="Red" Width="100%" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Width="100%" CellPadding="4" EmptyDataText="There is no any data."
ForeColor="#333333" EnableModelValidation="True" GridLines="None">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="id" HeaderText="ID" Visible="False" />
<asp:BoundField DataField="AccountRef" HeaderText="Account #" />
<asp:BoundField DataField="InvRef" HeaderText="Invoice Ref" />
<asp:BoundField DataField="CustOrderNo" HeaderText="Order Number" />
<asp:BoundField DataField="Product" HeaderText="Product" />
<asp:BoundField DataField="Qty" HeaderText="Qty" />
<asp:BoundField DataField="UnitAmount" HeaderText="Unit Amount" />
<asp:BoundField DataField="Value" HeaderText="Line Total" />
<asp:BoundField DataField="TakenBy" HeaderText="Taken By" />
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" />
<RowStyle ForeColor="#333333" BackColor="#F7F6F3" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
</asp:GridView>
<br />
<asp:Table ID="Table1" runat="server" Height="50px" Width="100%"
ForeColor="#333333" GridLines="None">
<asp:TableHeaderRow EnableTheming="true" BackColor="#5D7B9D" Font-Bold="True" ForeColor="White">
<asp:TableHeaderCell>Account Ref:</asp:TableHeaderCell>
<asp:TableHeaderCell>Invoice Ref</asp:TableHeaderCell>
<asp:TableHeaderCell>Customer Order #</asp:TableHeaderCell>
<asp:TableHeaderCell>Product</asp:TableHeaderCell>
<asp:TableHeaderCell>Qty</asp:TableHeaderCell>
<asp:TableHeaderCell>Unit Amount</asp:TableHeaderCell>
<asp:TableHeaderCell>Value</asp:TableHeaderCell>
<asp:TableHeaderCell>Taken By</asp:TableHeaderCell>
</asp:TableHeaderRow>
<asp:TableRow ForeColor="#333333" BackColor="#F7F6F3">
<asp:TableCell><asp:TextBox ID="txtAccountRef" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell><asp:TextBox ID="txtInvoiceRef" runat="server"></asp:TextBox ></asp:TableCell>
<asp:TableCell><asp:TextBox ID="txtCustOrderNo" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell><asp:TextBox ID="txtProduct" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell><asp:TextBox ID="txtQty" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell><asp:TextBox ID="txtUnitAmount" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell><asp:TextBox ID="txtValue" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell><asp:TextBox ID="txtTakenBy" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell><asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" /></asp:TableCell>
</asp:TableRow>
</asp:Table>
</fieldset>
</div>
</legend>
</form>
</body>
</html>
提前谢谢!
Justin您忘记了
.Text
属性;使用它指定控件的文本:
row["AccountRef"] = txtAccountRef.Text;
row["InvRef"] = txtInvoiceRef.Text;
row["CustOrderNo"] = txtCustOrderNo.Text;
row["Product"] = txtProduct.Text;
row["Qty"] = txtQty.Text;
row["UnitAmount"] = txtUnitAmount.Text;
row["Value"] = txtValue.Text;
row["TakenBy"] = txtTakenBy.Text;
您的问题是您的
AddDataToTable()
方法。您可以这样定义该函数的参数:
字符串AccountRef
然后将值指定给一行,如下所示:
行[“AccountRef”]=txtAccountRef
看到区别了吗?第二个摘录是使用页面上的控件,而不是您传入的参数。您应该将其更改为如下所示:
行[“AccountRef”]=AccountRef
仍在研究您的问题,但作为旁白,我看到您将数据表保留在会话中。当用户单击“添加”时,直接将行发送到数据库,而不是批量插入,这可能会更加有效。在每次会话中保持这样一张表的内存消耗可能会反过来影响你。贾斯汀,你从哪里得到这个代码的?我不想让你失望——我想帮助你,但这段代码有太多问题,我不知道从哪里开始。@MikeEast我是这个c#thingy;的新手)我是从有更好的方法吗?你链接到的文章有点过时,因为它首先使用的是
DataTable
,但它的实现也是根本错误的。参考更多更新的教程,他不应该分配传递到方法中的值吗?@muhammad akhtar您能告诉我如何为下拉列表选项执行此操作吗,即“row[“Product”]=txtProduct.Value;”或者其他什么?如果您的产品有下拉列表,那么它将是'row[“product”]=ProductDropdownID.SelectedValue;'感谢您在我尝试获取以下“txtProduct”时使用的SelectedValue无效,因为它不在项目列表中。参数名称:value
row["AccountRef"] = txtAccountRef.Text;
row["InvRef"] = txtInvoiceRef.Text;
row["CustOrderNo"] = txtCustOrderNo.Text;
row["Product"] = txtProduct.Text;
row["Qty"] = txtQty.Text;
row["UnitAmount"] = txtUnitAmount.Text;
row["Value"] = txtValue.Text;
row["TakenBy"] = txtTakenBy.Text;