Category: C#

C# – Récupération de données d’un webservices formaté en JSON

Pré requis :

Télécharger la librairie JSON.NET : http://json.codeplex.com/

 

WebService :

[WebMethod]

public string creancierAndroid()

{

Npgsql.NpgsqlConnection sqlCon = new Npgsql.NpgsqlConnection();

string ConnectionStr = System.Configuration.ConfigurationManager.AppSettings[“connexion”].ToString();

sqlCon.ConnectionString = ConnectionStr;

string req = “select c.client_numero , ad.adresse_nom  from  client c  “;

sqlCon.Open();

DataSet ds = new DataSet();

Npgsql.NpgsqlDataAdapter da = new Npgsql.NpgsqlDataAdapter(req, sqlCon);

da.Fill(ds);

sqlCon.Close();

string strDetails = “”;

if (ds.Tables[0].Rows.Count > 0)

{

strDetails += “[“;

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

{

strDetails +=

“{\”Field1\”:\”” + ds.Tables[0].Rows[i][“creancier_numero”].ToString() + “\”, \”Field2\”:\”” + ds.Tables[0].Rows[i][“adresse_nom”].ToString() + “\”},”;

}

strDetails += “]”;

strDetails = strDetails.Replace(“,]”, “]”);

}

return strDetails;

}

 

Appel du webservice avec récupération des données JSON remis dans un Datatable :

ServiceReference1.svCyrusSoapClient sv = new ServiceReference1.svCyrusSoapClient();

string resultat = sv.creancierAndroid();

DataTable dt = new DataTable();

dt = (DataTable)JsonConvert.DeserializeObject(resultat, dt.GetType());

dataGridView1.DataSource = dt;

 

 

 

 

 

 

 

Linq – Remplir une liste déroulante (DropDownList)

var query = from m in data.menu
join p in data.page on m.menu_page_id equals p.id
group p by new { m.menu_txt , menuId = m.id, pid = p.id, } into g
select new { g.Key.menu_txt, g.Key.pid, g.Key.menuId };
int b = 0;
foreach (var i in query)
{
DropDownList1.Items.Add(i.menu_txt);
DropDownList1.Items[b].Value = i.menuId.ToString();
b++;
})

WPF – Lire un fichier XML dans un gridview

Code XAML :
< Grid >
< ListView Name=”List1″ Margin=”35,34,28,123″ ItemTemplate=”{DynamicResource CustomerTemplate}” ItemsSource=”{Binding Path=Table}”>
< ListView.View>
< GridView>
< GridViewColumn Header=”Marque” DisplayMemberBinding=”{Binding Path=marque}”/>
< GridViewColumn Header=”Modele” DisplayMemberBinding=”{Binding Path=modele}”/>
< GridViewColumn Header=”Vitesse” DisplayMemberBinding=”{Binding Path=vitesse}”/>
< /GridView>
< /ListView.View>
< /ListView>
< /Grid>
Code Behind :
// lecture du fichier xml dans un gridview
string file = @”c:testxmlData1.xml”;
DataSet ds = new DataSet(“Table”);
ds.ReadXml(file);
List1.DataContext = ds.Tables[0].DefaultView;

XML – Mise à jour d’un document XML

// mise a jour de la marque et modele par rapport un une id
// creation de l’instance du document xml
XmlDocument xmldoc = new XmlDocument();
// chargement du fichier xml
xmldoc.Load(@”c:testxmlData1.xml”);
//recherche du noeud voiture ayant 3 dans l’attribut ID XmlNodeList xnl = xmldoc.DocumentElement.SelectNodes(“voiture[@ID=’3′]”);
// definition du texte du premier noeud enfant (marque)
xnl[0].ChildNodes[0].InnerText = “mercedes”;
// definition du deuxieme noeud enfant (modele)
xnl[0].ChildNodes[1].InnerText = “cls220″;
xmldoc.Save(@”c:testxmlData1.xml”);

XML – Ajout de nouveaux éléments dans un fichier XML

//Ajout de nouvelle voiture(marque, modele) dans le fichier xml a la suite XmlDocument xmldoc = new XmlDocument();
// Chargement du document xml
xmldoc.Load(@”c:testxmlData1.xml”);
// Récupération du dernier ID enregistré
string lastid = xmldoc.DocumentElement.LastChild.Attributes[“ID”].Value.ToString();
// Creation du nouvel ID (dernier ID + 1) int newid = int.Parse(lastid.ToString()) + 1;
// Créer un nouveau document xml
XmlElement newcatalogentry = xmldoc.CreateElement(“voiture”);
// Création d’un nouvel attribut (id) au noeud voiture
XmlAttribute newcatalogattr = xmldoc.CreateAttribute(“ID”);
// Valeur de l’attribut du noeud voiture
newcatalogattr.Value = newid.ToString();
// Ajout de la valeur de l’attribut au noeud voiture newcatalogentry.SetAttributeNode(newcatalogattr);
// Creation du premier element de voiture
XmlElement firstelement = xmldoc.CreateElement(“marque”);
// Ajout d’une valeur text a l’element “marque” firstelement.InnerText = “peugeot”;
// Ajout de l’element marque au noeud voiture newcatalogentry.AppendChild(firstelement);
// Création d’un deuxieme element
XmlElement secondelement = xmldoc.CreateElement(“modele”);
// Ajout d’une valeur text a l’element “modele”
secondelement.InnerText = “207”;
// Ajout de l’element marque au noeud voiture newcatalogentry.AppendChild(secondelement);
// Insertion de tout ce qu’on a créé dans le fichier XML
xmldoc.DocumentElement.InsertAfter(newcatalogentry, xmldoc.DocumentElement.LastChild);
// Sauvegarde du document XML
xmldoc.Save(@”c:testxmlData1.xml”);

XML – Ecrire / créer un fichier XML

//Ecrire/créer un fichier xml
// Créer un nouvelle instance d’XMLTxtxWriter
XmlTextWriter myXmlTextWriter = new XmlTextWriter(@”c:testxmlData1.xml”, null);
myXmlTextWriter.Formatting = Formatting.Indented;
myXmlTextWriter.WriteStartDocument(false);
//creation d’un commentaire
myXmlTextWriter.WriteComment(“base de données de voiture”);
// creation du premier noeud
myXmlTextWriter.WriteStartElement(“voiture”);
myXmlTextWriter.WriteElementString(“marque”, null, “sélectionner”);
myXmlTextWriter.WriteElementString(“modele”, null, “sélectionner”);
myXmlTextWriter.WriteElementString(“version”, null, “sélectionner “);
myXmlTextWriter.Flush();
myXmlTextWriter.Close();

C# – Lire un fichier texte

using (System.IO.FileStream fs =

new System.IO.FileStream(“fichier.txt”, System.IO.FileMode.Open))
{
System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.GetEncoding(“iso-8859-1”));
string txt = sr.ReadToEnd();
}

C# – Lire et écrire dans la base de registre

// recupere clé dans la base de registre

publicstring GetKeyValue(string DirName, string name)

{

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(DirName, true);

return key.GetValue(name).ToString();

}

// ecris clé dans la base de registre

publicvoid SetKeyValue(string DirName, string name, string value)

{

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(DirName);

key.SetValue(name, value);

}

VB / C# – DataGridViewCheckBoxCell déclencher l’événement seulement sur la checkbox et non sur la cellule

VB.NET :

PrivateSub dg_CurrentCellDirtyStateChanged(sender As System.Object, e As System.EventArgs) Handles dg.CurrentCellDirtyStateChanged

IfTypeOf dgEcriture.CurrentCell IsDataGridViewCheckBoxCellThen
dg.CommitEdit(DataGridViewDataErrorContexts.Commit)
EndIf

EndSub

PrivateSub dg_CellValueChanged(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellValueChanged

‘ Traitement à faire
  
EndSub

C# :

 private void dg_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
//Traitement à faire
}

private void dg_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dg.CurrentCell is DataGridViewCheckBoxCell)
{
dg.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}