Asp.net Gridviews 和数据库

Posted

技术标签:

【中文标题】Asp.net Gridviews 和数据库【英文标题】:Asp.net Gridviews and databases 【发布时间】:2017-11-06 16:54:00 【问题描述】:

这可能是一个长镜头,但我正在尝试将数据从 GridView1(产品数据库表)传输到 GridView2(订单数据库表),我迷路了。

这是我正在尝试的:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)

    GridViewRow gr1 = GridView1.SelectedRow;

    gr1.Cells[1].Text = SqlDataSource3.InsertParameters["ProdId"].DefaultValue;
    TextBox tb1 = gr1.FindControl("TextBox1") as TextBox;
    SqlDataSource2.InsertParameters["OrderQty"].DefaultValue = tb1.Text;



第三行 GridViewRow gr1..... 有一个选择按钮。 我创建了一个带有文本框的新列,该列应该传输OrderQty

我有两个 SqlDataSource,一个用于 Product(SqlDataSource2),一个用于 Order(SqlDataSource3)。我不断收到错误消息:

System.NullReferenceException:对象引用未设置为对象的实例。

谁能看出我哪里出错了?

【问题讨论】:

你调试代码了吗?代码中哪个对象为空? 两者都是。我删除了第一个以查看第二个是否有效,但我收到了同样的错误 哪个Both are ?什么是第一和第二? ProdID 和 OrderQty 您必须为此使用会话,否则? 【参考方案1】:

用这个代码试试吧:

GridViewRow gr1 = (sender as Control).NamingContainer as GridViewRow;

【讨论】:

【参考方案2】:

这是我为使其正常工作所做的:

GridViewRow gr1 = GridView1.SelectedRow;

    Label lblProdID = gr1.FindControl("Label1") as Label;

    SqlDataSource3.InsertParameters["OrderDate"].DefaultValue = "11/06/2017";
    SqlDataSource3.InsertParameters["CustID"].DefaultValue = TextBox2.Text;
    SqlDataSource3.InsertParameters["OrderID"].DefaultValue = "12346";
    SqlDataSource3.InsertParameters["ProdID"].DefaultValue = lblProdID.Text;
    SqlDataSource3.InsertParameters["OrderQty"].DefaultValue = ((TextBox)gr1.FindControl("TextBox1")).Text;
    SqlDataSource3.Insert();

【讨论】:

以上是关于Asp.net Gridviews 和数据库的主要内容,如果未能解决你的问题,请参考以下文章

单元格值的条件格式

多个 android GridViews 不会 wrap_content

Flutter中包含GridViews和ListViews的ListView

如何在不同 jquery ui 选项卡中的 gridviews 中使用 jquery Datatable 插件?

ado.net和asp.net区别?

能说一下ADO.NET 和.NET,还有asp.NET的区别吗?