Когда я пытаюсь обновить запись в GridView
, следующий код не обновляет запись, но также не вызывает никаких ошибок.Как обновить запись в Gridview
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string index = GridView1.Rows[e.RowIndex].Cells[1].Text; //DwgRegID
SqlConnection con = new SqlConnection("Data Source=MEHDI-PC\\SQLEXPRESS;Initial Catalog=PIMS;Integrated Security=True");
using (SqlCommand cmd = new SqlCommand())
{
string sql = "UPDATE dbo.Dwg_Register SET Ref = @Ref, Dwg_Ref = @Dwg_Ref,Title = @Title, Dwg_Received_Date = @Dwg_Received_Date, Rev = @Rev, Trade = @Trade, [email protected],[email protected]_Date,[email protected]_By,[email protected]_Ref,[email protected]_To,Date_Issued = Date_Issued, Purpose = @Purpose, [email protected],[email protected]_Date where DwgRegID=N'" + index + "'";
cmd.Connection = con;
con.Open();
cmd.CommandText = sql;
cmd.Parameters.Add(new SqlParameter("@Ref", txtRef.Text));
cmd.Parameters.Add(new SqlParameter("@Dwg_Ref", txtDwgRef.Text));
cmd.Parameters.Add(new SqlParameter("@Title", txtTitle.Text));
cmd.Parameters.Add(new SqlParameter("@Dwg_Received_Date", txtDwgReceivedDate.Text == "" ? DBNull.Value : (object)txtDwgReceivedDate.Text));
cmd.Parameters.Add(new SqlParameter("@Rev", txtRev.Text));
cmd.Parameters.Add(new SqlParameter("@Trade", ddlTrade.Text));
cmd.Parameters.Add(new SqlParameter("@type1", ddlType.Text));
cmd.Parameters.Add(new SqlParameter("@Produced_Date", txtProducedDate.Text == "" ? DBNull.Value : (object)txtProducedDate.Text));
cmd.Parameters.Add(new SqlParameter("@Produced_By", ddlProducedBy.Text));
cmd.Parameters.Add(new SqlParameter("@Submittal_Ref", txtSubmittalRef.Text));
cmd.Parameters.Add(new SqlParameter("@Issued_To", ddlIssuedTo.Text));
cmd.Parameters.Add(new SqlParameter("@Date_Issued", txtDateIssued.Text == "" ? DBNull.Value : (object)txtDateIssued.Text));
cmd.Parameters.Add(new SqlParameter("@Purpose", ddlPurpose.Text));
cmd.Parameters.Add(new SqlParameter("@status1", ddlStatus.Text));
cmd.Parameters.Add(new SqlParameter("@Action_Date", txtActionDate.Text == "" ? DBNull.Value : (object)txtActionDate.Text));
//cmd.Parameters.Add(new SqlParameter("@DwgRegID", index));
cmd.ExecuteNonQuery();
if (con.State == ConnectionState.Open)
{
con.Close();
}
GridView1.DataBind();
}
SqlConnection con1 = new SqlConnection("Data Source= MEHDI-PC\\SQLExpress; Initial Catalog=PIMS; Integrated Security=True");
string sql1 = "SELECT DwgRegID,Ref,Dwg_Ref,Title,Dwg_Received_Date,Rev,Trade,type1,Produced_Date,Produced_By,Submittal_Ref,Issued_To,Date_Issued,Purpose,status1,Action_Date from dbo.Dwg_Register";
con1.Open();
SqlDataAdapter da = new SqlDataAdapter(sql1,con1);
DataSet ds1 = new DataSet();
da.Fill(ds1);
GridView1.DataSource = ds1;
GridView1.DataBind();
if (con1.State == ConnectionState.Open)
{
con1.Close();
}
GridView1.EditIndex = -1;
GridView1.DataBind();
MultiView1.SetActiveView(ViewGrid);
lblUpdate.Text = "Record updated sucessfully.";
}
Когда я запускаю следующий SQL запрос в SSMS:
UPDATE dbo.Dwg_Register
SET Ref=4
from dbo.Dwg_Register
where DwgRegID=23
эта команда делает значение магазина 4 в dbo.Dwg_Register. Но эта команда не хранит значения в таблице sql из GridView.
Мой EditRow код функции выглядит следующим образом:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
MultiView1.SetActiveView(ViewGrid);
GridView1.EditIndex = e.NewEditIndex;
GridView1.DataBind();
}
Эта функция изменяет RowEditing
RowState
в GridView
редактировать-режим. Но когда я редактирую значение ячейки в Gridview
и нажимаю кнопку обновления, чтобы сохранить новое значение в таблице Sql, функция обновления не делает этого. Этот код не вызывает ошибок. Пожалуйста, помогите мне определить, где я могу ошибиться. Спасибо.
Об ошибке в SSMS: вам необходимо настроить все параметры, которые вы выполняете в коде в SSMS. В противном случае вы получите эту ошибку. Например, вы бы сделали что-то вроде 'declare @ref varchar (30)' для параметра '@ ref'. –
В SSMS поместите реальные значения (а не как параметры) так, как они есть на форме, и проверьте, прошел ли запрос или дает ошибку. Я полагаю, что данные для вашего запроса плохо сформированы. – Anshuman
проверьте подключение к базе данных. – ridoy