数据不会更新(数据库是SQL Server)

时间:2018-01-24 06:29:47

标签: c# asp.net sql-server

我在更新数据时遇到问题。

我有Home.aspx.cs和一个班级HomeClass.cs。我有一个gridview,我想在其中进行更新,但它不起作用。

它不会返回成功的消息,我也检查了我的SQL Server数据库,但没有任何更改。

这是我的Home.aspx.cs

protected void DataGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    try
    {
        GridViewRow row = DataGridView.Rows[e.RowIndex];

        // get old data
        HiddenField hidedescription = row.FindControl("hiddendescription") as HiddenField;
        HiddenField hidepkgcode = row.FindControl("hiddenpkgcode") as HiddenField;
        HiddenField hideoprcode = row.FindControl("hiddenoprcode") as HiddenField;

        // get new data
        DropDownList Ed_description = DataGridView.Rows[e.RowIndex].FindControl("Editdescription") as DropDownList;
        TextBox Ed_pkgcode = DataGridView.Rows[e.RowIndex].FindControl("Editpkgcode") as TextBox;
        TextBox Ed_oprcode = DataGridView.Rows[e.RowIndex].FindControl("Editoprcode") as TextBox;

        string Message = obj.Update_Data(Ed_description.SelectedItem,
                                            Ed_pkgcode,
                                            Ed_oprcode,
                                            hidedescription.Value,
                                            hidepkgcode.Value,
                                            hideoprcode.Value);

        Fill_Grid();
        Literal1.Text = Message;
    }
    catch (Exception ex)
    {
    }
}

void Fill_Grid()
{
    try
    {
        DataGridView.DataSource = obj.Get_Data();
        DataGridView.DataBind();
    }
    catch (Exception ex)
    {
    }
}

这是我的HomeClass.cs课程:

static string Connect = WebConfigurationManager.ConnectionStrings["CONSTRING"].ConnectionString;

SqlConnection con = new SqlConnection(Connect);
SqlCommand cmd;
SqlDataAdapter adap;
DataTable dt;

public string Update_Data(ListItem listItem,
                          TextBox Ed_pkgcode,
                          TextBox Ed_oprcode,
                          string hidedescription,
                          string hidepkgcode,
                          string hideoprcode)
{
    // update data
    string getnewType = listItem.Text;

    if (getnewType == "Data 1") 
    {
        getnewType = "Y"; 
    }

    if (getnewType == "Data 2") 
    { 
        getnewType = "N"; 
    }

    // old data
    if (hidedescription == "Data 1") { hidedescription = "Y"; }
    if (hidedescription == "Data 2") { hidedescription = "N"; }

    con.Open();
    cmd = new SqlCommand("Update PAORStdTime set type='" + getnewType + 
                       "', pkgcode='" + Ed_pkgcode.Text +
                       "', oprcode='" + Ed_oprcode.Text +
                       "' where type= '" + hidedescription + 
                       "' and pkgcode ='" + hidepkgcode + 
                       "' and oprcode ='" + hideoprcode +  "'" , con);

    cmd.ExecuteNonQuery();
    con.Close();

    return "Updated successfully";
}

1 个答案:

答案 0 :(得分:2)

where type = hidedescription
and pkgcode = hidepkgcode
and pkgcode = hideoprcode

pkgcode无法与hidepkgcodehideoprcode相等。我相信下面的代码就是你想要的。

where type = hidedescription
and pkgcode = hidepkgcode
and oprcode = hideoprcode