Voilà je ne sais pas ce qui pose le problème à mon application
http://www.developpez.net/forums/edi...post&p=3187668
lors de la restauration d'un fichier autre que txt, l'application se plante à la ligne
myCommand.ExecuteNonQuery();
et je ne comprend aps pourquoi? des idées?
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
58
59
60
61
62
63
64
65
66
67
68
69 public void restaurer(int fId, int numVersion) { SqlConnection myConnection = new SqlConnection(connectionString); SqlCommand myCommand = myConnection.CreateCommand(); myConnection.Open(); try { myCommand.CommandText = "RestaurerFichier"; myCommand.CommandType = CommandType.StoredProcedure; SqlParameter FichierId = new SqlParameter(); FichierId.ParameterName = "@FichierId"; FichierId.SqlDbType = SqlDbType.Int; FichierId.Value = fId; myCommand.Parameters.Add(FichierId); SqlParameter FichierVersion = new SqlParameter(); FichierVersion.ParameterName = "@numVersion"; FichierVersion.SqlDbType = SqlDbType.Int; FichierVersion.Value = numVersion; myCommand.Parameters.Add(FichierVersion); SqlParameter FichierData = new SqlParameter(); FichierData.ParameterName = "@FichierData"; FichierData.SqlDbType = SqlDbType.Binary; FichierData.Size = 16000; FichierData.Direction = ParameterDirection.Output; myCommand.Parameters.Add(FichierData); // erreur à cette ligne pour un fichier non txt myCommand.ExecuteNonQuery(); SqlCommand sqlcom2 = myConnection.CreateCommand(); sqlcom2.CommandText = "SELECT FichierNom FROM Fichiers WHERE FichierId=" + fId; SqlDataReader sqldata = sqlcom2.ExecuteReader(); while (sqldata.Read()) { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; saveFileDialog1.FilterIndex = 2; saveFileDialog1.FileName = sqldata.GetString(0); saveFileDialog1.InitialDirectory = @"C:/"; if (File.Exists(saveFileDialog1.FileName)) { File.Delete(saveFileDialog1.FileName); } if (saveFileDialog1.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create); byte[] data = (byte[])FichierData.Value; fs.Write(data, 0, System.Convert.ToInt32(data.Length)); fs.Seek(0, SeekOrigin.Begin); fs.Close(); } } } catch (Exception ex) { MessageBox.Show("erreur" + ex); } finally { myConnection.Close(); } }
Partager