Veuillez m'aider, j'ai ajouté le bouton de commande update/edit dans gridview afin de mettre à jour les données dans ma base de données SQL Server, mais je suis incapable de le faire. Les données ne sont pas mises à jour dans la base de données. Code pour onrowupdate =================== protected void gRowUpdate (expéditeur d'objet, GridViewUpdateEventArgs e) { Livres b = null; b = nouveaux livres(); DataTable dt = null; GridView g = (GridView) expéditeur; try {dt = new DataTable(); b = nouveaux livres(); b.author = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Auteur")); b.bookID = Convert.ToInt32 (g.Rows [e.RowIndex] .FindControl ("BookID")); b.title = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Titre")); b.price = Convert.ToDouble (g.Rows [e.RowIndex] .FindControl ("Prix")); // b.rec = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Date_of_reciept")); b.ed = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Edition")); b.bill = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Edition")); b.cre_by = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Edition")); b.src = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Edition")); b.pages = Convert.ToInt32 (g.Rows [e.RowIndex] .FindControl ("Edition")); b.pub = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Edition")); b.mod_by = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Edition")); b.remark = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Edition")); // b.year = Convert.ToString (g.Rows [e.RowIndex] .FindControl ("Edition")); b.updatebook (b); g.EditIndex = -1; dt = b.GetAllBooks(); g.DataSource = dt; g.DataBind(); Capture (Exception ex) { lancer (ex); } enfin { b = null; }impossible de mettre à jour gridview
} =================== Ma procédure stockée pour le livre de mise à jour capable de mettre à jour la base de données par le Comité exécutif dans SQLServer studio Mgmt ======= =================== ANSI_NULLS fixés sUR ensemble quoted_identifier vont
PROCÉDURE ALTER [dbo].[Usp_updatebook] @bookid bigint, @author varchar (50), @title varchar (50), @price bigint, @src_equisition varchar (50), @bill_no varchar (50), @publisher varchar (50), @pages bigint, @remark varchar (50), @edition varchar (50), @created_by varchar (50), @modified_by varchar (50) /datetime @date_of_reciept, datetime @year_of_publication/ AS déclare @modified_on datetime
set @ modified_on = getdate()
livres MISE À JOUR
SET
author = @ auteur, title = @ title, = prix de @,
src_equisition = @ src_equisition , bill_no = @ bill_no, éditeur = @ éditeur, /Date_de_reciept = @ date_de_reciept,/ pages = @ pages, remarque = @ remarque, edition = édition @, /Year_of_publication = @ year_of_publication,/
created_by = @ created_by, modified_on = @ modified_on, MODIFIED_BY = @ MODIFIED_BY
OÙ bookid = @ bookid ======================== fonction de bibliothèque de classe pour la mise à jour ============= =======
public void updatebook(Books b)
{
DataAccess dbAccess = null;
SqlCommand cmd = null;
try
{
dbAccess = new DataAccess();
cmd = dbAccess.GetSQLCommand("usp_updatebook", CommandType.StoredProcedure);
cmd.Parameters.Add("@bookid", SqlDbType.VarChar, 50).Value = b.bookID;
cmd.Parameters.Add("@author", SqlDbType.VarChar, 50).Value = b.author;
cmd.Parameters.Add("@title", SqlDbType.VarChar, 50).Value = b.title;
cmd.Parameters.Add("@price", SqlDbType.Money).Value = b.price;
cmd.Parameters.Add("@publisher", SqlDbType.VarChar, 50).Value = b.pub;
// cmd.Parameters.Add("@year_of_publication", SqlDbType.DateTime).Value =Convert.ToDateTime(b.year);
cmd.Parameters.Add("@src_equisition", SqlDbType.VarChar, 50).Value = b.src;
cmd.Parameters.Add("@bill_no", SqlDbType.VarChar, 50).Value = b.bill;
cmd.Parameters.Add("@remark", SqlDbType.VarChar, 50).Value = b.remark;
cmd.Parameters.Add("@pages", SqlDbType.Int).Value = b.pages;
cmd.Parameters.Add("@edition", SqlDbType.VarChar, 50).Value = b.ed;
// cmd.Parameters.Add("@date_of_reciept", SqlDbType.DateTime).Value = Convert.ToDateTime(b.rec);
// cmd.Parameters.Add("@created_on", SqlDbType.DateTime).Value = Convert.ToDateTime(b.cre_on);
cmd.Parameters.Add("@created_by", SqlDbType.VarChar, 50).Value = b.cre_by;
//cmd.Parameters.Add("@modified_on", SqlDbType.DateTime).Value = Convert.ToDateTime(b.mod_on);
cmd.Parameters.Add("@modified_by", SqlDbType.VarChar, 50).Value = b.mod_by;
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw (ex);
}
finally
{
if (cmd.Connection != null && cmd.Connection.State == ConnectionState.Open)
cmd.Connection.Close();
dbAccess = null;
cmd = null;
}
}
J'ai aussi essayé de faire la mise à jour en suivant façon gv1_updating protected void (object sender, GridViewUpdateEventArgs e) { GridView g = (GridView) expéditeur; abc a = new abc(); DataTable dt = new DataTable(); essayer {
a.cd_Id = Convert.ToInt32(g.DataKeys[e.RowIndex].Values[0].ToString());
//TextBox b = (TextBox)g.Rows[e.RowIndex].Cells[0].FindControl("cd_id");
TextBox c = (TextBox)g.Rows[e.RowIndex].Cells[2].FindControl("cd_name");
TextBox d = (TextBox)g.Rows[e.RowIndex].Cells[3].FindControl("version");
TextBox f = (TextBox)g.Rows[e.RowIndex].Cells[4].FindControl("company");
TextBox h = (TextBox)g.Rows[e.RowIndex].Cells[6].FindControl("created_by");
TextBox i = (TextBox)g.Rows[e.RowIndex].Cells[8].FindControl("modified_by");
//a.cd_Id = Convert.ToInt32(b.Text);
a.cd_name = c.Text;
a.ver = d.Text;
a.comp = f.Text;
a.cre_by = h.Text;
a.mod_by = i.Text;
a.updateDigi(a);
g.EditIndex = -1;
dt = a.GetAllDigi();
g.DataSource = dt;
g.DataBind();
}
catch(Exception ex)
{
throw (ex);
}
finally
{
dt = null;
a = null;
g = null;
}
}
=================== mais ont erreur de Index hors exception gamme =========
s'il vous plaît faire réponse, thanxs à l'avance
merci pour la réponse je l'ai essayé en changeant l'index, mais toujours la même error.Can Vous collez juste un petit code, par exemple pour gridview update.In la première méthode ci-dessus aucune erreur ne survient, mais la base de données est pas mis à jour. En fait, aucune valeur n'est lue dans les cellules gridview. Besoin d'urgence L'avoir dans le cadre du projet de dernière année.merci beaucoup d'avoir répondu – bhakti