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