IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[PPC][C#] File sharing et SqlNullValue exception


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut [PPC][C#] File sharing et SqlNullValue exception
    BOnjour à tous,

    J'ai se bout de code qui check le bon radiobutton selon les données de la db.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    			try
    			{
    				SqlCeConnection SqlCnx = new SqlCeConnection(@"Data Source=dbvehiaai.sdf");
    				string sSQL = "SELECT lf_fender, lf_headl, fr_bumper, fr_grill, fr_hood, rt_headl, rt_fender, fr_wind FROM vehiaai WHERE lot = "+LotNum;
    				SqlCeCommand SqlCommand = new SqlCeCommand(sSQL, SqlCnx);
    				SqlCnx.Open();
    				SqlCeDataReader SqlData = SqlCommand.ExecuteReader();
    				SqlData.Read();
    				string Check_lf_fender = SqlData.GetString(0);
    				string Check_lf_headl = SqlData.GetString(1);
    				string Check_fr_bumper = SqlData.GetString(2);
    				string Check_fr_grill = SqlData.GetString(3);
    				string Check_fr_hood = SqlData.GetString(4);
    				string Check_rt_headl = SqlData.GetString(5);
    				string Check_rt_fender = SqlData.GetString(6);
    				string Check_fr_wind = SqlData.GetString(7);
    				switch(Check_lf_fender)
    				{
    					case "1":
    						lf_fender1.Checked = true;
    						break;
    					case "2":
    						lf_fender2.Checked = true;
    						break;
    					case "3":
    						lf_fender3.Checked = true;
    						break;
    					default:
    						break;
    				}
    				SqlData.Close();
    				SqlCnx.Close();
    			}
    			catch(SqlCeException SqlCEex)
    			{
    				MessageBox.Show("SqlCE Error :\n"+SqlCEex.Message, "SQLCE ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show("Error :\n"+ex.Message);
    			}
    Cependant cela me donne un erreur comme quoi le fichier est déja en utilisation. J'ai vérifier tout les endroit ou l'application accèder au fichier de bd et elle sont toute fermer après utilisation.

    Auriez-vous une idée de la provenance de mon problème ?

    Merci

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    oui
    tu fais erreur si une exception est levée il y a fort peu de chance que ta connection soit fermé
    Pour en être sûr il faudrait deplacer ton code de fermeture dans un finally à la fin du Try catch
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Ok je fait cela et je vous redonne des nouvelle.

    est ce que je met SqlCnx.Close ou .dispose ???

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //...
    finally
     {
        if ((SqlCnx != null) && (SqlCnx.State == ConnectionState.Open))
         {
            SqlCnx.Close();
            SqlCnx.Dispose();
         }
     }
     
    //...
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    si tu as toujours le probleme, faut aussi voir si tu utilise le Sql Server CE Query Analyser. Si c'est le cas il faut bien le fermer avec le bouton quitter et non pas avec la croix. Avec la croix il reste en acces sur la base de données et cela génére se genre de probleme. Mais si c'est le cas tu le verra dans la liste des prog qui fonctionne sur ton PDA.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par freddyboy
    si tu as toujours le probleme, faut aussi voir si tu utilise le Sql Server CE Query Analyser. Si c'est le cas il faut bien le fermer avec le bouton quitter et non pas avec la croix. Avec la croix il reste en acces sur la base de données et cela génére se genre de probleme. Mais si c'est le cas tu le verra dans la liste des prog qui fonctionne sur ton PDA.

    @+
    Ok c'est une bonne chose à savoir cependant je n'utilise pas query analyser

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    				try
    				{
    					connection = new SqlCeConnection("Data Source = "+strDataSource);
    					string command = "SELECT id, auct, city FROM auct";
    					dataAdapterAuct = new SqlCeDataAdapter(command, connection);
    					commandBuilderAuct = new SqlCeCommandBuilder(dataAdapterAuct);
    					dataAdapterAuct.Fill(dataSetAuct, "auct");
    					dataTableAuct = dataSetAuct.Tables["auct"];
    					dataGridIaai.DataSource = dataTableAuct;
    				}
    				catch(SqlCeException Ex)
    				{
    					MessageBox.Show(Ex.Message);
    				}
    				finally
    				{
    					if ((connection != null) && (connection.State == ConnectionState.Open))
    					{
    						connection.Close();
    						connection.Dispose();
    					} 
    				}
    Au connection.State j'ai mit "==" car cela me donnait une erreur à la compilation.

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Roach
    Au connection.State j'ai mit "==" car cela me donnait une erreur à la compilation.
    bien sûr et excuses l'approximation
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Bah c'est pas grave faut bien apprendre aussi

    Merci je fait le résolu dès que j'ai un résultat et je vous redonne des nouvelle.

    8)

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    J'ai un problème avec cette partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    			try
    			{
    				SqlCeConnection SqlCnx = new SqlCeConnection(@"Data Source=dbvehiaai.sdf");
    				string sSQL = "SELECT lf_fender, lf_headl, fr_bumper, fr_grill, fr_hood, rt_headl, rt_fender, fr_wind FROM vehiaai WHERE lot = "+LotNum;
    				SqlCeCommand SqlCommand = new SqlCeCommand(sSQL, SqlCnx);
    				SqlCnx.Open();
    				SqlCeDataReader SqlData = SqlCommand.ExecuteReader();
    				SqlData.Read();
    				string Check_lf_fender = SqlData.GetString(0);
    				string Check_lf_headl = SqlData.GetString(1);
    				string Check_fr_bumper = SqlData.GetString(2);
    				string Check_fr_grill = SqlData.GetString(3);
    				string Check_fr_hood = SqlData.GetString(4);
    				string Check_rt_headl = SqlData.GetString(5);
    				string Check_rt_fender = SqlData.GetString(6);
    				string Check_fr_wind = SqlData.GetString(7);
    				switch(Check_lf_fender)
    				{
    					case "1":
    						lf_fender1.Checked = true;
    						break;
    					case "2":
    						lf_fender2.Checked = true;
    						break;
    					case "3":
    						lf_fender3.Checked = true;
    						break;
    					default:
    						break;
    				}
    			}
    			catch(SqlCeException SqlCEex)
    			{
    				MessageBox.Show("SqlCE Error :\n"+SqlCEex.Message, "SQLCE ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show("Error :\n"+ex.Message);
    			}
    			finally
    			{
    				SqlData.Close();
    				if ((SqlCnx != null) && (SqlCnx.State == ConnectionState.Open))
    				{
    					SqlCnx.Close();
    					SqlCnx.Dispose();
    				} 
    			}
    J'ai c'est erreur :

    1 The type or namespace name 'SqlData' could not be found (are you missing a using directive or an assembly reference?)

    2 The name 'SqlCnx' does not exist in the class or namespace 'BuyerAppTools.FormFront'

    3 The type or namespace name 'SqlCnx' could not be found (are you missing a using directive or an assembly reference?)

    4 The type or namespace name 'SqlCnx' could not be found (are you missing a using directive or an assembly reference?)

    Pourtant les autre accès à la db que j'ai modifier ne me cause pas se problème.

    Auriez-vous une idée de ma gaffe

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Je ne comprend pas à l'intérieur du try je peux les utiliser mais dès que je les mes dans finally cela cause c'est erreur.

    Je parle de SqlCnx et SqlData

  12. #12
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    faut sortir ton SqlCeConnection SqlCnx de ton bloc try, il est local au bloc try c'est pour ca que l'appli le trouve dans le bloc catch. Idem pour le SqlData.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    ok je l'ai mit dans la liste en haut

    Exemple :

    private SqlCeConnection SqlCnx;
    private SqlCeDataReader SqlData;

    est ce une bonne chose ou je devrais les mettre ailleurs ???


    Je vous demende cela car lorsqu'il sont dans la liste du haut cela me donne ceci en mode debug : Field 'BuyerAppTools.FormFront.SqlCnx' is never assigned to, and will always have its default value null . Pour SqlCnx et SqlData, l'appli démarre et ne fait pas d'erreur a la compile.

  14. #14
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    tu peux les laisser la si tu les utilise dans d'autres methodes.
    Si tu utilise ces objets juste dans une methode, place les dans cette methode.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    ok merci

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Il ne semble plus avoir l'erreur de file sharing cependant elle à été remplacer par un erreur SqlNullValueException. Avant de toucher au connexion cela fonctionnait (faisait l'erreur de file sharing) mais si je clickais sur OK pour continuer et bien les radionvutton était belle et bien checker au bonne place.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    			try
    			{
    				SqlCeConnection SqlCnx = new SqlCeConnection(@"Data Source=dbvehiaai.sdf");
    				string sSQL = "SELECT lf_fender, lf_headl, fr_bumper, fr_grill, fr_hood, rt_headl, rt_fender, fr_wind FROM vehiaai WHERE lot = "+LotNum;
    				SqlCeCommand SqlCommand = new SqlCeCommand(sSQL, SqlCnx);
    				SqlCnx.Open();
    				SqlCeDataReader SqlData = SqlCommand.ExecuteReader();
    				SqlData.Read();
    				string Check_lf_fender = SqlData.GetString(0);
    				string Check_lf_headl = SqlData.GetString(1);
    				string Check_fr_bumper = SqlData.GetString(2);
    				string Check_fr_grill = SqlData.GetString(3);
    				string Check_fr_hood = SqlData.GetString(4);
    				string Check_rt_headl = SqlData.GetString(5);
    				string Check_rt_fender = SqlData.GetString(6);
    				string Check_fr_wind = SqlData.GetString(7);
     
    					switch(Check_lf_fender)
    					{
    						case "1":
    							lf_fender1.Checked = true;
    							break;
    						case "2":
    							lf_fender2.Checked = true;
    							break;
    						case "3":
    							lf_fender3.Checked = true;
    							break;
    						case "4":
    							lf_fender4.Checked = true;
    							break;
    						default:
    							break;
    					}
    			}
    			catch(SqlCeException SqlCEex)
    			{
    				MessageBox.Show("SqlCE Error :\n"+SqlCEex.Message, "SQLCE ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show("Error :\n"+ex.Message);
    			}
    			finally
    			{
    				SqlData.Close();
    				SqlData.Dispose();
    				if ((SqlCnx != null) && (SqlCnx.State == ConnectionState.Open))
    				{
    					SqlCnx.Close();
    					SqlCnx.Dispose();
    				} 
    			}
    Cette erreur sort avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    			catch(Exception ex)
    			{
    				MessageBox.Show("Error :\n"+ex.Message);
    			}
    Vue que c'est un erreur Sql pourquoi ce n'est pas le catch des erreurs SqlCe qui le prend en charge ???

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Pour l'erreur de SqlNullValueException c'est lorsque je choisi un item qui n'a jamais été vérifier, donc les valeur dans la db sont null. Je n'ai pas encore réussi à trouver un solution.

    Pour le File sharing voila ce que j'ai vérifier.

    L'erreur provient de se catch si :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    		private void lf_fender1_CheckedChanged(object sender, System.EventArgs e)
    		{
    			try
    			{
    				SqlCeConnection SqlCnx = new SqlCeConnection(@"Data Source=dbvehiaai.sdf");
    				string sSQL = "UPDATE vehiaai SET lf_fender = 1 WHERE lot = "+txtLotNum.Text;
    				SqlCeCommand SqlCommand = new SqlCeCommand(sSQL, SqlCnx);
    				SqlCnx.Open();
    				SqlCommand.Prepare();
    				SqlCommand.ExecuteNonQuery();
    			}
    			catch(SqlCeException Ex)
    			{
    				MessageBox.Show("SqlCE Error lf_fender1.\n"+Ex.Message, "SqlCe Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    			}
    			finally
    			{
    				if(SqlCnx.State == ConnectionState.Open)
    				{
    					SqlCnx.Close();
    					SqlCnx.Dispose();
    				}
    			}
    		}
    Donc celle ci passe bien car elle est exécuté avant le lf_dender1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    		public void Check_Blank(string LotNum)
    		{
    			try
    			{
    				SqlCeConnection SqlCnx = new SqlCeConnection(@"Data Source=dbvehiaai.sdf");
    				string sSQL = "SELECT lf_fender, lf_headl, fr_bumper, fr_grill, fr_hood, rt_headl, rt_fender, fr_wind FROM vehiaai WHERE lot = "+LotNum;
    				SqlCeCommand SqlCommand = new SqlCeCommand(sSQL, SqlCnx);
    				SqlCnx.Open();
    				SqlCeDataReader SqlData = SqlCommand.ExecuteReader();
    				SqlData.Read();
    				string Check_lf_fender = SqlData.GetString(0);
    				string Check_lf_headl = SqlData.GetString(1);
    				string Check_fr_bumper = SqlData.GetString(2);
    				string Check_fr_grill = SqlData.GetString(3);
    				string Check_fr_hood = SqlData.GetString(4);
    				string Check_rt_headl = SqlData.GetString(5);
    				string Check_rt_fender = SqlData.GetString(6);
    				string Check_fr_wind = SqlData.GetString(7);
     
    				switch(Check_lf_fender)
    				{
    					case "1":
    						lf_fender1.Checked = true;
    						break;
    					case "2":
    						lf_fender2.Checked = true;
    						break;
    					case "3":
    						lf_fender3.Checked = true;
    						break;
    					case "4":
    						lf_fender4.Checked = true;
    						break;
    					default:
    						break;
    				}
    			}
    			catch(SqlCeException SqlCEex)
    			{
    				MessageBox.Show("SqlCE Error :\n"+SqlCEex.Message, "SQLCE ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show("Error :\n"+ex.Message);
    			}
    			finally
    			{
    				SqlData.Close();
    				SqlData.Dispose();
    				if ((SqlCnx != null) && (SqlCnx.State == ConnectionState.Open))
    				{
    					SqlCnx.Close();
    					SqlCnx.Dispose();
    				}
    			} 
    		}
    Le tous est loader par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		public void SortLot(string LotNum)
    		{
    			txtLotNum.Text = LotNum;
    			Check_Blank(txtLotNum.Text);
    			this.ShowDialog();
    		}
    En gros l'utilisateur entre les réponses au question poser qui sont des choix de réponse avec des raiobutton. SI il fait un erreur et revient sur un item dont il a déja répondu à des question je veux qu'il check tout les radioButton qui possède un donner dans la db (méthode Check_Blank).

    Chaque radiobutton est relier à une méthode comme celle de lf_fender1_CheckedChanged.

    Donc a se que je peux comprendre mon problème de file sharing provient du fait qu'il fait la requête sql Check_Blank et vue qu'il coche automatique le fender1 du à la donné 1 dans la db. La méthode lf_fender1_CheckedChanged s'exécute en même temps et cause le file sharing erreur.

    Est ce que j'ai bien comprit, s oui comment je peux faire pour régler mon problème.

    Cependant la requete de la methode Check_Blank est belle et bien fermer avec le .close et .dispose ...

    Merci

    PS : J'ai ajouter des info dans le titre pour les autres qui aurraient le même probleme de NULL et de file sharing.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Le problème de sharing file est régler, voici la solution que j'ai trouver :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    		public void Check_Blank(string LotNum)
    		{
    			SqlCeConnection SqlCnx = new SqlCeConnection(@"Data Source=dbvehiaai.sdf");
    			try
    			{
    				string sSQL = "SELECT lf_fender, lf_headl, fr_bumper, fr_grill, fr_hood, rt_headl, rt_fender, fr_wind FROM vehiaai WHERE lot = "+LotNum;
    				SqlCeCommand SqlCommand = new SqlCeCommand(sSQL, SqlCnx);
    				SqlCnx.Open();
    				SqlCeDataReader SqlData = SqlCommand.ExecuteReader();
    				SqlData.Read();
    				string Check_lf_fender = SqlData.GetString(0);
    				string Check_lf_headl = SqlData.GetString(1);
    				string Check_fr_bumper = SqlData.GetString(2);
    				string Check_fr_grill = SqlData.GetString(3);
    				string Check_fr_hood = SqlData.GetString(4);
    				string Check_rt_headl = SqlData.GetString(5);
    				string Check_rt_fender = SqlData.GetString(6);
    				string Check_fr_wind = SqlData.GetString(7);
     
    				SqlData.Close();
    				SqlData.Dispose();
    				if ((SqlCnx != null) && (SqlCnx.State == ConnectionState.Open))
    				{
    					SqlCnx.Close();
    					SqlCnx.Dispose();
    				}
     
    				switch(Check_lf_fender)
    				{
    					case "1":
    						lf_fender1.Checked = true;
    						break;
    					case "2":
    						lf_fender2.Checked = true;
    						break;
    					case "3":
    						lf_fender3.Checked = true;
    						break;
    					case "4":
    						lf_fender4.Checked = true;
    						break;
    					default:
    						break;
    				}
    			}
    			catch(SqlCeException SqlCEex)
    			{
    				MessageBox.Show("SqlCE Error :\n"+SqlCEex.Message, "SQLCE ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show("Error :\n"+ex.Message);
    			}
    		}
    J'ai enlever le finally de la methode Check_Blank et j'ai mit les deux variable qui a .close et .dispose juste avant le switch pour qu'il se déconnect avec d'effectuer les check, donc lorsqu'il load les CheckedChanged (lf_fender1) le requête avant est déjà closer donc il passe.

    Cependant il doit bien y avoir une autre facon , car la je crée du trafic inutile, du au fait que lorsqu'il ouvre le form il check la db et met les check au bonne place, mais en mettant le check il part la methode de chaque check pour les remettre dans la db, mais la donné y ait déjà.

    Je sais pas si vous me suivez mais j'espère être claire.

    POur le SqlNullValueException j'ai pas encore trouver de solution j'ai beaucoup de misère à travail avec les null.

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Je n'ai pas encore trouver de solution pour le SqlNullValueException.

  20. #20
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    c'est quelle ligne qui provoque cette exception ?

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. nom fichier pour file sharing
    Par networkinfo dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2013, 14h21
  2. Réponses: 5
    Dernier message: 31/07/2012, 23h25
  3. Serveur ISA, IIS et file shares
    Par Jeremiah dans le forum IIS
    Réponses: 0
    Dernier message: 17/12/2008, 15h29
  4. Exception: TXMLDocument.LoadXMLFile File not found
    Par powerlog dans le forum XMLRAD
    Réponses: 12
    Dernier message: 09/08/2005, 10h29
  5. [Quartz][Tomcat] Jobs.xml file not found exception
    Par Arnaud Giuliani dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 05/08/2005, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo