1

我已经阅读了大量关于此的网站。如果您调用一些代码而没有解释它是如何生成的(设计视图与键入)或者只是想使用简单的选择和更新语句,那么有很多“示例”。

我有一个网格视图。我正在使用存储过程中的代码填充它。现在我想编辑数据。我没有通过设计视图(数据源、列等)在 Gridview 的属性中设置任何内容。我的问题是,如何设置它以允许编辑并使用 SP 将其发送回数据库?

由于我选择不在设计视图中设置属性,我现在是否必须使用代码手动创建列?

在设计视图中设置属性并走这条路更好吗?我是这样开始的,但是在使用 SP 更新时遇到了问题。

我想整个在设计器中做与在代码中做这件事让我感到困惑。

我开始在 html 和 c# 中添加 RowEdit、RowCommand 等,但是当我运行它时仍然没有在网页上看到 EDIT/CANCEL。

4

2 回答 2

0

学习使用 ObjectDataSource。它使您可以最大程度地自由地存储您使用的数据 - 您将选择、更新和删除委托给外部类,您只需在其中编写使用 ado、linq、hibernate、webservice 或任何东西的代码。

直接针对固定的数据库结构编写视图迟早会伤害到您。

于 2013-03-20T21:45:55.167 回答
0

创建表,如名称 StckDetails 在此处输入图像描述

在使用 anme sp_StckDetails1 ALTER procedure [dbo].[sp_StockDetails1] 创建过程后(
@Action varchar(20), @Branch_ID int=null, @Stock_Name varchar(50)=null, @Stock_code varchar(20)=null, @Qty int =null, @Purchase_Price decimal(18,0)=null, @Sales_Price decimal(18,0)=null, @Order_ID int=null ) 作为 BEGIN SET NOCOUNT ON; if @Action='Update' begin update StockDetails set Qty=@Qty,Purchase_Price= @Purchase_Price,Sales_price=@Sales_Price where Order_ID=@Order_ID end End

然后添加 c#code is Label lbl_id = GridView2.Rows[e.RowIndex].FindControl("Label2") as Label; TextBox txt1_qty = GridView2.Rows[e.RowIndex].FindControl("TextBox7") as TextBox; TextBox txt2_PP = GridView2.Rows[e.RowIndex].FindControl("TextBox8") as TextBox; TextBox txt3_sp = GridView2.Rows[e.RowIndex].FindControl("TextBox9") as TextBox;

       SqlCommand cmd = new SqlCommand("sp_StockDetails1", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@Action", "Update");
        cmd.Parameters.AddWithValue("@Order_ID", SqlDbType.Int).Value = Convert.ToInt32(lbl_id.Text);
        cmd.Parameters.AddWithValue("@Qty", SqlDbType.Int).Value = Convert.ToInt32(txt1_qty.Text);
        cmd.Parameters.AddWithValue("@Purchase_Price", SqlDbType.Decimal).Value = Convert.ToDecimal(txt2_PP.Text);
        cmd.Parameters.AddWithValue("@Sales_Price", SqlDbType.Decimal).Value = Convert.ToDecimal(txt3_sp.Text);
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

        GridView2.EditIndex = -1;
        fillgrid2();

Gridview设计代码是aspx代码

'>'>'>'>'>'>'>'> '> '> ......................................................................................................................................................

试试看它会说话

于 2016-04-22T05:49:21.780 回答