ahlemlo
Messages postés225Date d'inscriptionsamedi 7 avril 2007StatutMembreDernière intervention21 mai 2009
-
31 mai 2007 à 09:04
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 2009
-
4 juin 2007 à 16:06
bonjour à tous,
j'ai utilisé la méthode WMI pour afficher les informations d'un pc.je veux que ces information seront inserer dans ma base comment faire ça?
pouvez vous m'aider.
merci.
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 1 juin 2007 à 15:18
Pour travailler avec une bdd, il faut établir un connexion, ensuite avec un SqlDataAdapterrenseigner les requêtes Select, Insert, ...
Après au lieu d'ajouter la valeur à la textBox, tu utilise ton DataAdapter pour insérer ta valeur dans ta bdd. Lis les articles et les exemples sur la msdn (cf les liens) et tu auras ta solution. Depuis combien de temps, code tu en c#?
Sinon, petit rappel de points déjà expliqués :
> Certaine propriétés ne sont pas forcément renseignées, donc tu peux obtenir la valeur null, et dans ce cas c'est le drame car tous tes casts en string vont lever des exceptions.
> Modifie ta requête en SELECT quelquechose FROM Win32_Classe plutôt que d'utiliser * et de tester les propriétés par la suite, ton code sera plus rapide, plus lisible, plus propre.
> Dans ton programme de test (celui au dessus), pourquoi utilise tu une TextBox avec des retour/chariot au lieu d'une ListBox, ce serait beaucoup plus simple, plus esthétique, plus propre.
> Utilise un StringBuilder ou la méthode format de l'objet String pour concaténer les chaines de caractères, au lieu de l'opérateur +
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 4 juin 2007 à 11:13
Salut, "on plus avec ListBox ne marche pas on sait pas pourquoi" n'est pas suffisant pour que l'on puisse t'aider! Est ce qu'une exception est levée ? Si oui laquelle ?
Mon idée était de remplacer :
textBox3.Text += aPropertyData3.Name + " : " + System.Convert.ToString(aManagementObject3[aPropertyData3.Name]) + "\r\n";
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 4 juin 2007 à 16:06
Lis tu les réponses que l'on te donne? Tout dépend de la structure de ta table et de ta bd. Comme je ne les connais pas, je peux pas te donner de bout de code. Il faut
<li>que tu créé une connexion à ta bd. Regarde dans l'onglet "Server explorer" pour créer automatiquement une connexion
</li><li>que tu créé une SqlCommand de type Insert (du style "INSERT INTO maTable (maVal) VALUES @maVal")
</li><li>que tu l'associe à la propriété InsertCommand de ton objet SqlDataAdapter.</li><li>que tu utilise la méthode Update de ton objet SqlDataAdapter avec comme paramètres les valeurs obtenues via ta requête wmi.</li>Je pnse qu'aveec tout ça tu devrais t'en sortir. Je me trompe peut être mais j'ai l'impression que tu ne connais pas bien le c# ?
PS : on ne peut pas faire ton projet à ta place, en tout cas je crois pas que ce soit le but de ce forum
Vous n’avez pas trouvé la réponse que vous recherchez ?
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 31 mai 2007 à 11:56
Salut, ce n'est pas la peine de poster plusieurs fois pour une même question (cf ici et là) ; il faut aussi être plus précis car la question est ultra vaste. Tu peux déjà jeter un coup d'oeuil ici pour le wmi et là pour la gestion de la bdd ; ça devrait te donner des pistes.
ahlemlo
Messages postés225Date d'inscriptionsamedi 7 avril 2007StatutMembreDernière intervention21 mai 2009 1 juin 2007 à 13:54
bonjour,
voici le code qui permet d'fficher les information d'un carte mémoire,systéme d'exploitation,carte réseau et les logiciel installé.
je veux inserer ces information dans la base de donné sql server2005 qui contient ces tables (table carte mémoire,table systéme d'exploitation,table carte réseau et table logiciel installé ).
ces tables sont initialement vide.
quelle est le code qui permet l'insertion de ces information?
où je peux faire le code d'insertion?
//voici le code:
ManagementScope aManagementScope = new ManagementScope("\\\\Localhost\\root\\cimv2");
//La classe ObjectQuery représente une requête de gestion qui retourne des instances ou des classes
System.Management.ObjectQuery aObjectQuery = new System.Management.ObjectQuery("Select * from Win32_NetworkAdapter");
System.Management.ObjectQuery aObjectQuery1 = new System.Management.ObjectQuery("Select * from Win32_Product");
System.Management.ObjectQuery aObjectQuery2 = new System.Management.ObjectQuery("Select * from Win32_PhysicalMemory");
System.Management.ObjectQuery aObjectQuery3 = new System.Management.ObjectQuery("select * from Win32_OperatingSystem");
//La classe ManagementObjectSearcher permet d'extraire une collection d'objets de gestion, en fonction de la requête spécifiée lors de son instanciation par le paramètre ObjectQuery ou directement par une string si l'on " code en dur ".
ManagementObjectSearcher aManagementObjectSearcher = new ManagementObjectSearcher(aManagementScope, aObjectQuery);
ManagementObjectSearcher aManagementObjectSearcher1 = new ManagementObjectSearcher(aManagementScope, aObjectQuery1);
ManagementObjectSearcher aManagementObjectSearcher2 = new ManagementObjectSearcher(aManagementScope, aObjectQuery2);
ManagementObjectSearcher aManagementObjectSearcher3 = new ManagementObjectSearcher(aManagementScope, aObjectQuery3);
//ManagementObject est un objet de gestion de données.
textBox3.Text += "caractéristique des cartes réseaux:" + "\r\n";
foreach (ManagementObject aManagementObject in aManagementObjectCollection)
{
textBox3.Text += "\r\n";
//PropertyData représente les informations retournées par la propriété WMI de l'objet extrait par le ManagementObject utilisé.
foreach (System.Management.PropertyData aPropertyData in aManagementObject.Properties)
{
if (aPropertyData.Name =="DeviceID" || aPropertyData.Name == "AdapterType" || aPropertyData.Name == "Description" || aPropertyData.Name == "MACAddress" || aPropertyData.Name == "NetConnectionID" || aPropertyData.Name == "NetworkAddresses")
//dans cette partie je veux faire l'insertion de ces informations dans la base
}
}
//ManagementObject est un objet de gestion de données.
textBox3.Text += "caractéristique des logicielles installées dans la machine:" + "\r\n";
foreach (ManagementObject aManagementObject1 in aManagementObjectCollection1)
{
textBox3.Text += "\r\n";
//PropertyData représente les informations retournées par la propriété WMI de l'objet extrait par le ManagementObject utilisé.
foreach (System.Management.PropertyData aPropertyData1 in aManagementObject1.Properties)
{ // if (aPropertyData.Name "AdapterType" || aPropertyData.Name "DeviceID" || aPropertyData.Name == "Description" || aPropertyData.Name == "MACAddress" || aPropertyData.Name == "NetworkAddresses" || aPropertyData.Name == "NetConnectionID" || aPropertyData.Name == "SerialNumber")
textBox3.Text += "caractéristiques du carte mémoire:" + "\r\n";
foreach (ManagementObject aManagementObject2 in aManagementObjectCollection2)
{
//Ajout d'un retour chariot pour séparer à l'affichage les objets extraits.
textBox3.Text += "\r\n";
//PropertyData représente les informations retournées par la propriété WMI de l'objet extrait par le ManagementObject utilisé.
foreach (System.Management.PropertyData aPropertyData2 in aManagementObject2.Properties)
{ //if (aPropertyData2.Name "Capacity" || aPropertyData2.Name "Caption" || aPropertyData2.Name == "Description" || aPropertyData2.Name == "SerialNumber")
textBox3.Text += "caractéristique du systeme d'exploitation:" + "\r\n";
foreach (ManagementObject aManagementObject3 in aManagementObjectCollection3)
{
//Ajout d'un retour chariot pour séparer à l'affichage les objets extraits.
textBox3.Text += "\r\n";
//PropertyData représente les informations retournées par la propriété WMI de l'objet extrait par le ManagementObject utilisé.
foreach (System.Management.PropertyData aPropertyData3 in aManagementObject3.Properties)
{ if (aPropertyData3.Name "Caption" || aPropertyData3.Name "CSDVersion" || aPropertyData3.Name == "SerialNumber" || aPropertyData3.Name == "Status" || aPropertyData3.Name == "Version")
ahlemlo
Messages postés225Date d'inscriptionsamedi 7 avril 2007StatutMembreDernière intervention21 mai 2009 4 juin 2007 à 08:30
bonjour,
merci bien de votre données.
mais on a pas pu faire ça?
pouvez vous nous aider svp?
on plus avec ListBox ne marche pas on sait pas pourquoi?
merci pour tous
ahlemlo
Messages postés225Date d'inscriptionsamedi 7 avril 2007StatutMembreDernière intervention21 mai 2009 4 juin 2007 à 11:20
quand j'utilise listbox.rien ne s'affiche (il n'y a aucune résultat) j'espert que vous m'avais compris et merci bien.
et maintenant je vais esseyer ce code que vous m'a donner
ahlemlo
Messages postés225Date d'inscriptionsamedi 7 avril 2007StatutMembreDernière intervention21 mai 2009 4 juin 2007 à 11:40
merci c'est bien marché mais juste il nous reste comment ces information afficher dans la listbox on les insert dans ma base de donnée.
on a vue le cours que vous m'avais donner mais on a pas compris comment faire?
ou on faire la requette insert et comment?
pouvez vous m'aider?
merci tréééééééééééééés bien de votre aide
et vraiment désolé.