2010-09-28 10 views
0

Hé les gars, je fais juste le programme de lecture, écrire des données à Access DB en C# et j'ai un problème en écrivant des données à Access DB bien que je m capable de lire les données c'est à dire fetchin 'fonctionne bien mais quand j'insère des données mon "ExecuteNonQuery" fonctionne bien je veux dire sans erreur ne mais quand ouvrir le DB Access les données ne sont pas là .... voici le code que m tryin faire ...écrire à MS-Access DB Problème en C sharp

 

     //// Function For ExecuteNonQuery 
     public static bool ExecuteNonQuery(string Query) 
     { 

      OleDbCommand oledbCommand = new OleDbCommand(Query, connection); 
      if (connection.State == ConnectionState.Open) 
       connection.Close(); 
      try 
      { 
       connection.Open(); 
       if (oledbCommand.ExecuteNonQuery() > 0) 
        return true; 
       else 
        return false; 
      } 
      catch (Exception) 
      { 
       return false; 
      } 
      finally 
      { 
       connection.Close(); 
      } 
     } 
 

Ce ci-dessous le code est pour l'ajout de données qui obtient le feu sur "Ajouter" Appuyez sur le bouton

 

     private void btnAdd_Click(object sender, EventArgs e) 
     { 
      simOperator.aim_network_name = txtAimNetNm.Text; 
      simOperator.network_id = txtOxiNetID.Text; 
      simOperator.network_name = txtNetName.Text; 
      simOperator.pack_id = txtPackID.Text; 
      simOperator.pack_name = txtPackName.Text; 
      SimOperator.Add(simOperator); 
      fillText(); 
     } 
     public void fillText() 
     { 
      txtResult.Text = ""; 
      SimOperator[] simOperatorList = SimOperator.GetAllOperators(); 
      foreach (SimOperator sm in simOperatorList) 
      { 
       txtResult.Text += Program.operator_id + " " + sm.aim_network_name + " " + sm.network_name + " " + sm.network_id + " " + sm.pack_id + " " + sm.pack_name + "\r\n"; 
      } 
     } 
 

est ici le "Ajouter" Fonction

 

      string Query = string.Format("insert into {0}({2}) values({1});", calledObject.Name, PropertyValue,PropertyName); 
      ExecuteNonQuery(Query); 
 

Actuall requête SQL est:

 
insert into SimOperator(aim_network_name,network_id,network_name,pack_id,pack_name) values('FiveNet','2563','FiveNet-Kurla','1236','5236'); 

Ouais et ma chaîne de connexion

 

static OleDbConnection connection = new OleDbConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]); 
 

fichier App.config contient la chaîne comme

La chose que je n'obtiens pas est que j'ai placé une zone de texte juste à côté de tous les champs intérieurs afin que je puisse voir ce qui est inséré, donc quand j'insère des données, cette zone affiche parfaitement les données mais quand j'ouvre l'accès db, alors theres pas de données dans ce cas, quand je ferme mon application et encore je l'ai couru alors que la zone de texte est vide ... cela me semble bizarre .. Quelqu'un a rencontré ce genre un problème s'il vous plaît aidez-moi ici ..

Répondre

2

Le faites-vous pendant le débogage? Dans ce cas, regardez s'il y a un fichier mdf dans le dossier de débogage et s'il contient les données que vous venez d'insérer. Vs copier un fichier dans le dossier de débogage lorsque vous exécutez l'application dans ce mode. Si je me souviens bien, il y a une option pour dire de ne pas copier les fichiers lors du débogage

+0

Stefano @ hm, ouais m le faire en mode débogage .. et je ne sais pas à propos de cette option pour dire de ne pas copier les fichiers quand debuggin, nehw je vais vérifier cette option et merci mec, permet de voir si cela fonctionne ou non. – FosterZ

+0

Stefano @ hey il ya un fichier .mdf dans Debug Folder et il contient les données .. Pouvez-vous m'expliquer pourquoi cela se produit je veux dire créer un autre fichier mdf dans le dossier de débogage? – FosterZ

+0

@FosterZ je suppose qu'il arrive de ne pas corrompre les données au cours du développement. Honnêtement, je ne me souviens pas comment éviter de faire le fichier, essayez de sélectionner le fichier mdf dans votre projet (je suppose que vous l'avez ajouté au projet), sélectionnez l'onglet Propriétés et (s'il est présent) changez l'option "copier local" à faux –