begin process at 2010 02 10 05:38:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

MySQL

 > 

Probleme d'update/insert/delete


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme d'update/insert/delete

mardi 31 octobre 2006 à 22:55:01 | Probleme d'update/insert/delete

Sobieski

Salut !

J'ai un petit soucis : je n'arrive pas a faire d'update/insert/delete sur ma database. A priori, la chaine de caractère que j'utilise fonctionne (elle passe le QueryBrowser).
D'un point de vu architectural, j'ai un objet DBConnect qui est invoqué et la connexion ouverte pour chaque HttpContext (ceci est non discutable, vu que je peux aisément faire des selects à tout va avec).
Voici mon objet DBConnect :

publicclassDbConnect

{

private MySqlConnection _dbconn;

public DbConnect()

{

}

public void Dispose()

{

this ._dbconn.Dispose();

}

public bool Initialize()

{

bool ret = false ;

try

{

_dbconn =

new MySqlConnection ();

_dbconn.ConnectionString =

"server=localhost;user id=root; password=nuwuugaemysql;database=wwwgareaugroumpfnet;" ;

/*ConfigurationManager.ConnectionStrings["connectionstring"].ToString(); ;*/

ret =

true ;

}

catch

{

//TODO: Log

if (_dbconn.ConnectionString == "" )

ret =

false ;

}

return ret;

}

public bool Open()

{

bool ret = false ;

try

{

_dbconn.Open();

ret =

true ;

}

catch

{

//TODO: Log

ret =

false ;

}

return ret;

}

public DataTable ReadTable( string cmd)

{

MySqlDataAdapter myAdapter = new MySqlDataAdapter ();

myAdapter.SelectCommand =

new MySqlCommand (cmd, _dbconn);

DataSet myDs = new DataSet ();

myAdapter.Fill(myDs);

return myDs.Tables[0];

}

public bool Update( string cmd)

{

MySqlCommand myCommand = new MySqlCommand (cmd);

myCommand.Connection =

this ._dbconn;

myCommand.ExecuteNonQuery();

return true ;

}

public bool Insert( string cmd)

{

MySqlCommand myCommand = new MySqlCommand (cmd);

myCommand.Connection =

this ._dbconn;

myCommand.ExecuteNonQuery();

return true ;

}

public bool Delete( string cmd)

{

MySqlCommand myCommand = new MySqlCommand (cmd);

myCommand.Connection =

this ._dbconn;

myCommand.ExecuteNonQuery();

return true ;

}

}

Bref, quand je passe une commande a Select, ça passe, les autres, ça fait rien. Pourquoi ? (a noter que je n'ai ni exception, ni rien).

mardi 31 octobre 2006 à 23:14:29 | Re : Probleme d'update/insert/delete

coq

Administrateur CodeS-SourceS
Salut,

Là, la seule différence que je vois est l'ouverture de la connexion.
Un DataAdapter ouvre la connexion si elle ne l'est pas déjà, ils ont dû suivre le même comportement pour le provider MySQL.



/*
coq
MVP Visual C#
CoqBlog
*/
mardi 31 octobre 2006 à 23:29:20 | Re : Probleme d'update/insert/delete

Sobieski

Je suis d'accord, mais quand je regarde en debug l'état de la connexion, il me dit bien "Open".
En debug pas à pas, je fais bien tout, les états semblent normaux, et le pire, c'est quand je regarde le nombre de row affected, il me sort bien "1".
J'ai modifié mon code pour ressembler à celui présent dans ce code source :
http://www.csharpfr.com/codes/DIVERS-CLASSES-POUR-UTILISER-MYSQL-ACCESS-SQL-SERVER_36034.aspx

Ma méthode d'update devient donc :

publicbool Update(string cmd)

{

try

{

MySqlDataAdapter myAdapter = newMySqlDataAdapter();

myAdapter.SelectCommand =

newMySqlCommand(cmd, this._dbconn);

myAdapter.SelectCommand.ExecuteNonQuery();

returntrue;

}

catch (Exception e)

{

throw e;

}

}


En debug pas à pas, je fais bien tout, les états semblent normaux, et le pire, c'est quand je regarde le nombre de row affected, il me sort bien "1".
Ma table Config ne contient qu'une ligne (c'est pour stocker la conf). Elle n'a pas de Key, et l'Update se fait sans clause WHERE. N'y aurait-il pas une protection inconnue de moi ?
mardi 31 octobre 2006 à 23:44:29 | Re : Probleme d'update/insert/delete

coq

Administrateur CodeS-SourceS
Bonne question.
Si c'est le cas, il faut peut être chercher du côté de MySQL.
Peut être un problème de droit, mais si tu as tester ta requête avec le même compte via leur analyseur de requête que celui de ta chaine de connexion, il n'y a pas de raison que ça ne passe pas dans le code.
Et si c'était le cas le provider devrait au moins te remonter une exception, au lieu d'échouer silencieusement et de retourner un nombre éronné.
Dernière solution me venant à l'esprit : un transaction implicite avec rollback implicite à la déconexion.


/*
coq
MVP Visual C#
CoqBlog
*/
mercredi 1 novembre 2006 à 00:00:47 | Re : Probleme d'update/insert/delete

Sobieski

Je pense plutôt tenter par la méthode dite de la procédure stockée, même si c'est une technique que je suis loin de maîtriser.



Cette discussion est classée dans : public, cmd, ret, mycommand, dbconn


Répondre à ce message

Sujets en rapport avec ce message

insertion de données avec sqldataadaptar [ par vboussema ] salut;j'ai un dataadapter et un dataset et j'aime insérer dans la bd en utilisant une procedure stokéquand j'essay d'insérer en utilisant la commande progresseBar en C# [ par dyder ] Bonjour à tous, j'ai besion d'aide..j'ai réalisé un programmae qui permet de lire des fichiers et de mettre à jour certaines tables de ma base de donn Affichage d'une zone de grille dans une nouvelle fenêtre. [ par astvt ] J'ai écrit un petit programme avec une fenêtre principale et une fenêtre secondaire qui contient une zone grille axMSFlexGrid. Cette grille de 17 colo Initialisation d'un array a la déclaration [ par olibara ] BonjourJe me plante toujours quand je veux declarer et en meme temps initialiser un tableuExemple : j'ai défini une classe ChkBox avec son constructeu class tableau de classe virtuelle. [ par zbar ] Bonjour, J'ai un problème pour créer une class qui regroupe les élements d'une class virtuelle:le code:  public remplir une checklistbox à partir d'une base SQL [ par kristof78000 ] bonjour,ça fait 2 jours que je planche sur le remplissage d'une checklistbox à partir d'une base sql et je n'y arrive pas, malgré notre ami google... envoi /reception de structure [ par flofloduc84 ] bonjours a tous,voila j'ai une structure comme sa:public struct Message{ public string commande; public string x; public string y;}est je Récupérer le résultat d'une insertion [ par Finality ] Bonjour tout le monde, je travaille actuellement sur un petit script permettant d'insérer des données dans une base Access. Pour cela j'utilise OleDB. s'en sortir avec un FileStream [ par zoot06 ] Bonjour tout le monde, Voila je pensais bien faire avec ma fonction FileStream, mais quelque chose gache tout ce qui fait qui ne fonctionne pas.Voici Pblm de log dans les WebServices [ par marccollin ] bonjour,j'ai un ptit problème en voulant mettre des logs dans mes WebServices.je me retrouve avec plein de petits fichier de log au lieu d'un seul !!e


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales