Sql et c#

Philippe - 13 août 2014 à 12:16
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 19 août 2014 à 14:57
Bonjour,

J'ai une form relier a une base de donnée sqlserver

j'ai un combobox avec a coté un bouton
Je voudrais que l'on puisse choisir l'une des donnée dans le combobox ou alors en ajouter une en tapant son texte et en cliquant sur le bouton.

Voici mon code


SqlConnection sqlConnect;
SqlCommand sqlCde, sqlcde_valid;
SqlDataReader sqlrdr;

private void button_Click(object sender, EventArgs e)
{
sqlConnect.Open();
sqlCde = new sqlConnect;

string strsql = ("insert into responsabilite values ('" + combobox.Text + "');");

sqlCde.CommandType = CommandType.Text;
sqlCde.CommandText = strsql;

sqlrdr = sqlCde.ExecuteReader();

sqlrdr.Close();
sqlConnect.Close();
}

Cela ne fonctionne pas :(

3 réponses

remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 3
13 août 2014 à 14:01
Bonjour,

tu devrait avoir quelque chose de ce genre

dans ta form_Load
form_load
// SqlDataReader dr;
sqlConnect.Open();
sqlCde = new sqlConnect;

string strsql ="select ton_champ from table_combobox";
sqlCde.CommandType = CommandType.Text;
            sqlCde.CommandText = strsql;
            dr = CommandText.ExecuteReader();
            while (dr.Read())
            {
                comboBox1.Items.Add(dr[0]);//0 ou 1 ect... selon la position du champ dans la table
            }
            dr.Close();



là tu peut remplir ton combobox

puis ton enregistrement

string strsql = ("insert into responsabilite values ('" + comboBox1.SelectedItem + "');


malgré ma faiblesse je crois que tu pourra avancer
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
13 août 2014 à 17:30
à moins que je me trompe, sa demande concernait l'ajout , le chargement de la combo étant déjà fait
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 3
13 août 2014 à 17:31
pas de quoi mon chers, une idée seulement
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
Modifié par nagashima le 13/08/2014 à 17:29
salut,

Concernant le requêtage en lui même, tu trouvera une classe à cette adresse :

http://codes-sources.commentcamarche.net/source/100077-transaction-mysql-utilisation-yield

qui te permettra soit de voir la manière dont les requêtes peuvent être faites, soit de l'utiliser directement en l'incluant au projet (attention il y a une particuliarité : le yield return. si ca t 'interesse je te laisse chercher. L'idée de la classe étant surtout de séparer la communication avec la base et la lecture des données) .

Concernant ton code, il y a une chose qui n'est pas "normale" :

sqlrdr = sqlCde.ExecuteReader();

tu souhaite faire une insertion et tu appel le reader .. j'avoue ne jamais avoir essayé mais ca ne me semble pas correct. Utilise plutot :


.
.
.
cmdMySQL.CommandText = strsql;
try
{
sqlCde.ExecuteNonQuery();
}
catch (MySqlException e)
{
MessageBox.Show(e.Message.ToString());
}
.
.
.

Concernant l'ajout dans la ComboBox, deux solution : lors de l'insertion, tu l'ajoute à la main (
taCombo.Items.Add("tachaine");
) mais perso je te conseils plutôt de recharger ta combo => de cette manière tu t'assure visuellement de l'insertion.

naga
0
WAEL_NET Messages postés 5 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 19 août 2014 1
Modifié par Whismeril le 19/08/2014 à 14:57
il faut indiquer la chaîne de connexion tout d'abord connectionString
et remplaase ExecuteReader par ExecuteNonQuery

using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
 SqlCommand command = new SqlCommand("insert into responsabilite                      values ('" + combobox.Text + "');", connection);
command.Connection.Open();
command.ExecuteNonQuery();
    }
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
19 août 2014 à 14:57
En plus d'utilsier le bouton "répondre", merci d'utiliser les balises de codes, voir ici comment utiliser la coloration syntaxique.

Je corrige cette fois.
0
Rejoignez-nous