1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| using System.Data;
using System.IO;
using System;
using System.Data.OleDb;
namespace ExempleAdoNetCSharp
{
/// Description résumée de OleDbDataSet.
public class OleDbDataSet
{
public static void Main()
{
string strConnexion = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Khalil\Documents\Visual Studio 2010\WebSites\TpCompteModeDeconnecté\App_Data\baseCompte.accdb";
string strRequete = "SELECT '' as [id_compte], '' as [titulaire],'' as [solde] from Compte UNION SELECT [id_compte],[titulaire], [solde] FROM [Compte]";
OleDbConnection oConnection = new OleDbConnection(strConnexion);
oConnection.Open();
// Chargement de la liste des catégories dans oDataSet
OleDbDataAdapter oOleDbDataAdapter = new OleDbDataAdapter(strRequete, oConnection);
OleDbCommandBuilder dbco = new OleDbCommandBuilder(oOleDbDataAdapter);
DataSet oDataSet = new DataSet("Compte");
oOleDbDataAdapter.Fill(oDataSet,"Compte");
// Affichage du contenu de oDataSet avant insertion de données
System.Console.WriteLine(" *** Liste des catégories avant la mise à jour *** ");
for (int i=0 ; i < oDataSet.Tables["Compte"].Rows.Count ; i++)
{
System.Console.WriteLine("\t{0}\t{1}",oDataSet.Tables["Compte"].Rows[i][0].ToString(),oDataSet.Tables["Compte"].Rows[i][1].ToString());
}
Console.WriteLine("\n");
// Remplissage de la commande InsetCommand
oOleDbDataAdapter.InsertCommand = new OleDbCommand("INSERT INTO Compte(titulaire, solde) Values(@titulaire,@solde)",oConnection);
oOleDbDataAdapter.InsertCommand.Parameters.Add("@titulaire", OleDbType.Char, 15, "titulaire");
oOleDbDataAdapter.InsertCommand.Parameters.Add("@solde", OleDbType.Integer, 16, "solde");
DataRow oDataRow;
byte [] byteArray = { 0x00,0x00};
oDataRow = oDataSet.Tables["Compte"].NewRow();
oDataRow["titulaire"]= "iiiiiiii";
oDataRow["solde"]= "120000";
oDataSet.Tables["Compte"].Rows.Add(oDataRow);
oOleDbDataAdapter.UpdateCommand = new OleDbCommand("UPDATE Compte SET titulaire = @titulaire, solde = @solde WHERE id_compte = @id_compte", oConnection);
oOleDbDataAdapter.UpdateCommand.Parameters.Add("@id_compte", OleDbType.Char, 15, "id_compte");
//OleDbParameter parameter = oOleDbDataAdapter.UpdateCommand.Parameters.Add("@id_compte", SqlDbType.Int);
//parameter.SourceColumn = "id_compte";
//parameter.SourceVersion = DataRowVersion.Original;
oOleDbDataAdapter.UpdateCommand.Parameters.Add("@titulaire", OleDbType.Char, 15, "titulaire");
oOleDbDataAdapter.UpdateCommand.Parameters.Add("@solde", OleDbType.VarChar, 40, "solde");
foreach (DataRow row in oDataSet.Tables["Compte"].Rows)
{
if (row["id_compte"].Equals("64"))
{
row["titulaire"] = "je susi";
row["solde"] = "2344";
break;
}
}
oOleDbDataAdapter.RowUpdated += new OleDbRowUpdatedEventHandler(OnRowUpdated);
oOleDbDataAdapter.Update(oDataSet, "Compte");
// Mise à jour de la source de données à partir du DataSet
DataTable table = oDataSet.Tables["Compte"];
// First process deletes.
oOleDbDataAdapter.Update(table.Select(null, null, DataViewRowState.Deleted));
// Next process updates.
oOleDbDataAdapter.Update(table.Select(null, null,
DataViewRowState.ModifiedCurrent));
// Finally, process inserts.
oOleDbDataAdapter.Update(table.Select(null, null, DataViewRowState.Added));
// Rechargement des données de la source mise à jour
oDataSet.Clear();
oOleDbDataAdapter.Fill(oDataSet,"Compte");
// Affichage du contenu de oDataSet après insertion d'une ligne de données
Console.WriteLine(" *** Liste des catégories après la mise à jour *** ");
for (int i=0 ; i < oDataSet.Tables["Compte"].Rows.Count ; i++)
{
Console.WriteLine("\t{0}\t{1}",oDataSet.Tables["Compte"].Rows[i][0].ToString(),oDataSet.Tables["Compte"].Rows[i][1].ToString());
}
Console.ReadLine();
oConnection.Close();
}
// Event procedure for OnRowUpdated
protected static void OnRowUpdated(
object sender, OleDbRowUpdatedEventArgs args)
{
string strConnexion = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Khalil\Documents\Visual Studio 2010\WebSites\TpCompteModeDeconnecté\App_Data\baseCompte.accdb";
OleDbConnection oConnection = new OleDbConnection(strConnexion);
oConnection.Open();
// Include a variable and a command to retrieve the identity value from the Access database.
int newID = 0;
OleDbCommand idCMD = new OleDbCommand(
"SELECT @@IDENTITY", oConnection);
if (args.StatementType == StatementType.Update)
{
// Retrieve the identity value and store it in the CategoryID column.
newID = (int)idCMD.ExecuteScalar();
args.Row["id_compte"] = newID;
}
}
}
} |
Partager