C# 在数据集中插入数据行时出现问题

C# 在数据集中插入数据行时出现问题,c#,asp.net,C#,Asp.net,我在数据集中插入datarow时遇到问题。我想在数据集中插入一行,然后在用户单击“添加产品”按钮时将其绑定到gridview控件,但它一直给我一个错误“对象引用未设置为对象的实例。” 我的html代码 <form runat="server" class="form-horizontal"> <div class="row"> <div class="form-group"> <div class="co

我在数据集中插入datarow时遇到问题。我想在数据集中插入一行,然后在用户单击“添加产品”按钮时将其绑定到gridview控件,但它一直给我一个错误
“对象引用未设置为对象的实例。”

我的html代码

<form runat="server" class="form-horizontal"> <div class="row">

<div class="form-group">
                        <div class="col-md-6">
                            <label class="control-label col-md-3">Product ID:</label>
                            <asp:Label ID="lblProdID" class="control-label col-md-3" runat="server" />
                        </div>
                        <div class="col-md-6">
                            <label class="control-label col-md-3">Product Name:</label>
                            <div class="col-md-5 input-group">
                                <asp:DropDownList ID="ddlProducts" runat="server" class="form-control" />
                            </div>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-md-6">
                            <label class="control-label col-md-3">Quantity:</label>
                            <div class="col-md-5">
                                <asp:TextBox ID="txtQty" runat="server" class="form-control" />
                            </div>
                        </div>
                        <div class="col-md-5">
                            <div class="col-md-offset-6">
                                <asp:Button ID="btnAddProduct" runat="server" class="btn btn-primary" 
                                    Text="Add Product" onclick="btnAddProduct_Click" />
                            </div>
                        </div>   

</div>


<asp:GridView ID="grdPODetails" 
                        class="table table-bordered table-hover table-responsive" runat="server" 
                        AutoGenerateColumns="False" ShowHeaderWhenEmpty="True">
                        <Columns>
                            <asp:BoundField DataField="ProductID" HeaderText="#" />
                            <asp:BoundField DataField="POQtyOrdered" HeaderText="Quantity" />
                        </Columns>

                    </asp:GridView> </form>

根据你的代码,你要做的是, 获取数据集并将其保存到名为Details的公共变量中。然后在按钮单击事件中访问此变量。如果您正在将详细信息保存在中!IsPostBack,则仅在第一次回发期间保存该值。 您必须将详细信息保存到会话/视图状态 您可以做的是为如下详细信息创建一个属性

DataSet Details
{
    get
    {
        if (Session["mydataset"] != null)
            GetPODetails();
        return Session["mydataset"] as DataSet;
    }
    set
    {
        Session["mydataset"] = value;
    }
}

它仍然会显示错误“对象引用未设置为对象的实例”,您在哪一行收到此消息?每次单击“添加产品”时,我都会收到错误消息“对象引用未设置为对象的实例”
DataSet Details
{
    get
    {
        if (Session["mydataset"] != null)
            GetPODetails();
        return Session["mydataset"] as DataSet;
    }
    set
    {
        Session["mydataset"] = value;
    }
}