Il est possible de manipuler le DataRow avant de le lier à GridView. Cela vous permet de modifier par programmation les modifications que vous souhaitez apporter aux données sans modifier la requête SQL elle-même.
D'abord, vous créez une copie du DataRow. Ensuite, vous ajoutez des lignes supplémentaires ou modifiez les valeurs des colonnes dans les lignes. Ensuite, vous appelez EndEdit() et AcceptChanges() sur le DataRow pour vous assurer que les modifications sont appliquées. Ensuite, vous ajoutez la ligne modifiée dans la table du DataSet en utilisant ImportRow, modifiez RowState en Added, et enfin appelez la méthode Update d'un TableAdapter en utilisant le DataRow.
Voici quelques exemples de code de mes notes:
try
{
DataSet objDataSet = new DataSet();
SqlConnection objSqlConnection = new SqlConnection();
objSqlConnection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
string strSQL = "SELECT * FROM table WHERE OrderDate = '2008.10.21' AND OrderSequence = 1;";
SqlDataAdapter objSqlDataAdapter = new SqlDataAdapter(strSQL, objSqlConnection);
objSqlDataAdapter.Fill(objDataSet);
// Create a copy of the DataRow
DataRow drOrders = objDataSet.Tables[0].Rows[0];
// Change the value of some columns to avoid duplicate primary key
drOrders["OrderDate"] = DateTime.Now.ToString("yyyy.MM.dd");
drOrders["OrderSequence"] = 15;
// Call EndEdit() and AcceptChanges() on the DataRow to ensure changes are applied
drOrders.EndEdit();
drOrders.AcceptChanges();
// Add the modified row back into the DataSet's table using ImportRow
objDataSet.Tables[0].ImportRow(drOrders);
// Change the RowState to Added
objDataSet.Tables[0].Rows[1].SetAdded();
// Call a TableAdapter's Update method using the DataRow
dsOrderTableAdapters.DetailFareTableAdapter dfta = new dsOrderTableAdapters.DetailFareTableAdapter();
dfta.Update(objDataSet.Tables[0].Rows[1]);
lblMessage.Text = "The row has been copied!";
}
catch (Exception ex)
{
lblErrorMessage.Text = ex.ToString();
}
Je ne comprends pas la question. –