Probleme code requête parametrée

Résolu
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 - 24 juil. 2008 à 14:10
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 28 juil. 2008 à 10:39
bonjour,
je veux réalisé une requete parametrée j'ai ecris le code suivant :
private void button1_Click(object sender, EventArgs e)
{
Add_informations ma_form_Add_informations = new Add_informations();

{
if (textBox_project_name.Text != "")
{
// Chaîne de connexion
string connectString = @"Data Source=RENNDXPRDL2596\SQLEXPRESS;Initial Catalog=hafid;Integrated Security=True";
// Objet connection
SqlConnection connection = new SqlConnection(connectString);
// Ouverture
connection.Open();

SqlCommand command = new SqlCommand("INSERT INTO [Table_Project]([ID_project],[Project_Category],[kick_off_date],[Location]) VALUES(@ID_project,@Project_Category, @Location, @kick_off_date", connection);

// Paramètres
command.Parameters.Add(new SqlParameter("@ID_project", SqlDbType.NVarChar, 50));
command.Parameters.Add(new SqlParameter("@Project_Category", SqlDbType.NVarChar, 50));
command.Parameters.Add(new SqlParameter("@kick_off_date", SqlDbType.NVarChar, 50));
command.Parameters.Add(new SqlParameter("@Location", SqlDbType.NVarChar, 50));

command.Parameters["@ID_project"].Value = textBox_project_name.Text;
command.Parameters["@Project_Category"].Value = comboBox1.Text;
command.Parameters["@Location"].Value = comboBox2.Text;
command.Parameters["@kick_off_date"].Value = textBox_Date.Text;


// Object datareader
SqlDataReader reader = command.ExecuteReader();
Object[] row = null;
while (reader.Read())
{
if (row == null)
row = new Object[reader.FieldCount];
reader.GetValues(row);
for (int i=0; i<row.GetLength(0); i++)
{
if (row[i] != DBNull.Value)
Console.Write(row[i]);
else
Console.Write("NULL");
if (i<row.GetUpperBound(0))
Console.Write("|");
}
Console.WriteLine();
}
// Fermeture reader
reader.Close();
// Fermeture base
connection.Close();

ma_form_Add_informations.ShowDialog();

}
else
{

MessageBox.Show("You must fill the name of project", " Reconfigure", MessageBoxButtons.OK, MessageBoxIcon.Error);

}
}
}
}
}

mais ca marche pas ca bug,
merci de votre aide

16 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
24 juil. 2008 à 14:49
normal : il manque une ) après @kick_off_date !

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
24 juil. 2008 à 14:41
ca marche pas ?
ca bug ?

bah c'est bien...

comment veux-tu qu'on t'aide si tu nous dis pas ce qui ne fonctionne pas !

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 1
24 juil. 2008 à 14:46
j'ai un message qui me di "Incorrect syntax near '@kick_off_date'".
0
gglamicose Messages postés 94 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 7 mars 2009 1
24 juil. 2008 à 15:09
Sebmafate, tu es mon Dieu ^^ !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
24 juil. 2008 à 15:20
comme quoi... j'ai bien fait d'apprendre à lire les message d'erreur :)

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 1
24 juil. 2008 à 17:13
merci ca marche
0
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 1
25 juil. 2008 à 15:20
maintenant j'ai une autre code qui mache pas :


// Chaîne de connexion
string connectString = @"Data Source=RENNDXPRDL2596\SQLEXPRESS;Initial Catalog=hafid;Integrated Security=True";
// Objet connection
SqlConnection connection = new SqlConnection(connectString);
// Ouverture
connection.Open();


SqlCommand command = new SqlCommand("INSERT INTO [table_PPA]([ID_project],[Duration_Estimate_PH_0],[Duration_Estimate_PH_1],[Duration_Estimate_PH_2],[Duration_Estimate_PH_3],[Duration_Estimate_at_Completion],[ETM_PH_0_],[ETM_PH_1_],[ETM_PH_2_],[ETM_PH_3_]) VALUES(@ID_project,@Duration_Estimate_PH_0,@Duration_Estimate_PH_1,@Duration_Estimate_PH_2,@Duration_Estimate_PH_3,@Duration_Estimate_at_Completion,@ETM_PH_0_,@ETM_PH_1_,@ETM_PH_2_,@ETM_PH_3_)", connection);

// Paramètres
command.Parameters.Add(new SqlParameter("@ID_project", SqlDbType.NVarChar, 50));
command.Parameters.Add(new SqlParameter("@Duration_Estimate_PH_0", SqlDbType.Float));
command.Parameters.Add(new SqlParameter("@Duration_Estimate_PH_1", SqlDbType.Float));
command.Parameters.Add(new SqlParameter("@Duration_Estimate_PH_2", SqlDbType.Float));
command.Parameters.Add(new SqlParameter("@Duration_Estimate_PH_3", SqlDbType.Float));
command.Parameters.Add(new SqlParameter("@Duration_Estimate_at_Completion", SqlDbType.Float));
command.Parameters.Add(new SqlParameter("@ETM_PH_0_", SqlDbType.Float));
command.Parameters.Add(new SqlParameter("@ETM_PH_1_", SqlDbType.Float));
command.Parameters.Add(new SqlParameter("@ETM_PH_2_", SqlDbType.Float));
command.Parameters.Add(new SqlParameter("@ETM_PH_3_", SqlDbType.Float));


command.Parameters["@ID_project"].Value = textBox_project_name.Text;
command.Parameters["@Duration_Estimate_PH_0"].Value = textBox_Duration_Estimate_PH_0.Text;
command.Parameters["@Duration_Estimate_PH_1"].Value = textBox_Duration_Estimate_PH_1.Text;
command.Parameters["@Duration_Estimate_PH_2"].Value = textBox_Duration_Estimate_PH_2.Text;
command.Parameters["@Duration_Estimate_PH_3"].Value = textBox_Duration_Estimate_PH_3.Text;
command.Parameters["@Duration_Estimate_at_Completion"].Value = textBox_Duration_Dstimate_at_Completion.Text;
command.Parameters["@ETM_PH_0_"].Value = textBox_ETM_Phase_0.Text;
command.Parameters["@ETM_PH_1_"].Value = textBox_ETM_Phase_1.Text;
command.Parameters["@ETM_PH_2_"].Value = textBox_ETM_Phase_2.Text;
command.Parameters["@ETM_PH_3_"].Value = textBox_ETM_Phase_3.Text;


command.Parameters["@Duration_Estimate_PH_0"].Value = Convert.ToDouble(textBox_Duration_Estimate_PH_0.Text);
command.Parameters["@Duration_Estimate_PH_1"].Value = Convert.ToDouble(textBox_Duration_Estimate_PH_1.Text);
command.Parameters["@Duration_Estimate_PH_2"].Value = Convert.ToDouble(textBox_Duration_Estimate_PH_2.Text);
command.Parameters["@Duration_Estimate_PH_3"].Value = Convert.ToDouble(textBox_Duration_Estimate_PH_3.Text);
command.Parameters["@Duration_Estimate_at_Completion"].Value = Convert.ToDouble (textBox_Duration_Dstimate_at_Completion.Text);
command.Parameters["@ETM_PH_0_"].Value = Convert.ToDouble (textBox_ETM_Phase_0.Text);
command.Parameters["@ETM_PH_1_"].Value = Convert.ToDouble(textBox_ETM_Phase_1.Text);
command.Parameters["@ETM_PH_2_"].Value = Convert.ToDouble(textBox_ETM_Phase_2.Text);
command.Parameters["@ETM_PH_3_"].Value = Convert.ToDouble(textBox_ETM_Phase_3.Text);

command.ExecuteNonQuery();


}
}
malgré ca ca marche pas j'au
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
25 juil. 2008 à 15:28
il manque un bout de ton message ?

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 1
25 juil. 2008 à 15:35
le code est complet
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
25 juil. 2008 à 15:40
et le message d'erreur ?

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 1
25 juil. 2008 à 15:50
au debut j avais ce message

Failed to convert parameter value from a String to a Double.

en suite j'ai rajouté ce code pour faire un convert:


command.Parameters["@Duration_Estimate_PH_0"].Value = Convert.ToDouble(textBox_Duration_Estimate_PH_0.Text);
command.Parameters["@Duration_Estimate_PH_1"].Value = Convert.ToDouble(textBox_Duration_Estimate_PH_1.Text);
command.Parameters["@Duration_Estimate_PH_2"].Value = Convert.ToDouble(textBox_Duration_Estimate_PH_2.Text);
command.Parameters["@Duration_Estimate_PH_3"].Value = Convert.ToDouble(textBox_Duration_Estimate_PH_3.Text);
command.Parameters["@Duration_Estimate_at_Completion"].Value = Convert.ToDouble (textBox_Duration_Dstimate_at_Completion.Text);
command.Parameters["@ETM_PH_0_"].Value = Convert.ToDouble (textBox_ETM_Phase_0.Text);
command.Parameters["@ETM_PH_1_"].Value = Convert.ToDouble(textBox_ETM_Phase_1.Text);
command.Parameters["@ETM_PH_2_"].Value = Convert.ToDouble(textBox_ETM_Phase_2.Text);
command.Parameters["@ETM_PH_3_"].Value = Convert.ToDouble(textBox_ETM_Phase_3.Text);

et l aje message .

Input string was not in a correct format.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
25 juil. 2008 à 15:59
mouaip...

en fait, il faut que tu valides la saisie de tes textboxes !
Plutot qu'un Convert.ToDouble utilise Double.TryParse...

Mais avant tout, il faut vraiment etre sur que l'utilisation à entré des chiffres dans les textboxes, sinon, ça plantera.

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 1
25 juil. 2008 à 16:06
comment je dois faire ca sat ,
0
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 1
25 juil. 2008 à 16:54
a tu une idée stp?
0
zakaroh Messages postés 42 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 août 2008 1
28 juil. 2008 à 09:41
quelqu'in pourra m aider svp!!!
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
28 juil. 2008 à 10:39
hum... merci d'etre patient.

ici nous sommes tous volontaires et nous répondons lorsque nous avons le temps !
Tu as aussi le droit de te creuser la tete !

Maintenant, pour t'aider à résoudre ton problème : il existe 2 solutions :
1. Soit tu vérifies avant d'utiliser tes variables qu'elles sont du bon type
2. Soit tu utilises un Validator qui validera automatiquement la saisie de l'utilisateur (http://www.csharpfr.com/codes/WINDOWS-FORMS-VALIDATORS_43575.aspx)

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
Rejoignez-nous