Значение обновления поля базы данных ASP.net

Я хочу обновить только выбранную строку, но вместо этого были обновлены целые строки, например:

до

после

После этого я попытался использовать @SMT_Assembly для оператора обновления, но он выдает ошибку «Должен объявить скалярную переменную». Я новичок в ASP.net, пожалуйста, внесите необходимые изменения в мой исходный код, и ваша помощь очень ценится.

Homepage.aspx:

<asp:GridView ID="GridView1"  DataKeyNames="SMT_Assembly" AutoGenerateColumns="false" runat="server" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="4" GridLines="Horizontal" Height="214px" Width="848px">
        <asp:HyperLinkField DataTextField="IQA_status" NavigateUrl="ConfirmIQAstatus.aspx"  HeaderText="IQA status"/>
        <asp:HyperLinkField DataTextField="Overall_Status" NavigateUrl="ConfirmIQAstatus.aspx"  HeaderText="Overall_Status"/>
    </Columns>
</asp:GridView>

Homepage.cs

public partial class Homepage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection sqlcon = new SqlConnection(@"Data Source=MYPENM0LSQLV01DINST3;Initial Catalog=RTDF;Persist Security Info=True;User ID=*******; Password=*******");

        String query = "UPDATE RTDF.dbo.SMT_CompWeight SET IQA_status = 'Open' where SMT_Assembly = @SMT_Assembly ";


        SqlCommand retrieveCommand = new SqlCommand(query,sqlcon);
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = retrieveCommand;
        DataSet ds = new DataSet();
        da.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();
        sqlcon.Close();

    }


}

Всего 1 ответ


При выборе события строки срабатывает при нажатии на ссылку выбора. Если вам нужен какой-то конкретный элемент в этой строке, вы можете легко выбрать его, используя свойство ячейки. В Gridview дважды щелкните по событию SelectedIndexChanged и напишите следующий код:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)  
{  
TextBoxUserID.Text = GridView1.SelectedRow.Cells[1].Text;  
TextBoxUserName.Text = GridView1.SelectedRow.Cells[2].Text;  
}  

Источник: https://www.c-sharpcorner.com/UploadFile/rohatash/how-to-get-the-selected-row-in-gridview-using-Asp-Net/

РЕДАКТИРОВАТЬ :

и я думаю, что для вашей сетки вы должны добавить AutoGenerateSelectButton="True" и если это не сработает, попробуйте: OnSelectedIndexChanged="function" или onitemcommand="function"

это похоже на Telerik:RadGrid которым я знаком.


Есть идеи?

10000