027
07.04.2006, 21:57 Uhr
Uwe
C/C++ Master (Administrator)
|
Hallo, die Tabelle hab ich etwa so angelegt wir Flo es geschrieben hat (bis auf ein paar Änderungen, die int1-3 brauchen nicht unbedingt not null seien.)
Code: |
CREATE TABLE `t_user` ( `id` INTEGER(10) NOT NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `int1` INTEGER(10) NOT NULL, `int2` INTEGER(10) NOT NULL, `int3` INTEGER(10) NOT NULL, PRIMARY KEY (`id`) );
|
Dann die Verbindung zur Database im Programm mit einer MsqlConnection hergestellt. Verbindungsstring:Server=localhost;UserId=root;Database=users Da ich zu faul war meine Linux Möhre anzuwefen hab ich das mit xampp getestet, deshalb kein Kennwort! Dann im Quellcode:
C++: |
private void Form1_Load(object sender, System.EventArgs e { string sSql="INSERT INTO t_user VALUES (0, 'ich', 'userpwd', 1, 2, 3);"; MySqlCommand cmd = new MySqlCommand(); cmd.Connection=conn; cmd.CommandText=sSql; if (conn.State==ConnectionState.Closed) conn.Open(); try { int nDs = cmd.ExecuteNonQuery(); string sResult; if (nDs > 0) sResult="Datensatz erfolgreich eingefügt."; else sResult="Datensatz konnte nicht eingefügt werden."; MessageBox.Show(this,sResult); } catch(MySqlException ex) { MessageBox.Show(this,"Fehler beim schreiben des Datensatzes: "+ex.Message,"Fehler",MessageBoxButtons.OK,MessageBoxIcon.Error); } finally { conn.Close(); } }
|
Fertsch!
Bearbeitung von Uwe: |
Da id nicht leer seine darf, muss dort ein Wert gesetzt werden. Da er auf Autoincrement steht kann dort immer 0 stehen, da die Sequenz vor dem einfügen (Before Insert) den nächsten Wert bereitstellt.
|
Nachtrag: mit string sSql="INSERT INTO t_user VALUES (null, 'ich', 'userpwd', 1, 2, 3);"; sollte das auch funktionieren. Da ich nicht weiß was CRYPT ist (Stored Procedure etc.) und der Aufruf einen Fehler wirft, hab ich das verschlüsseln weg gelassen. -- "Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."
Bis dann... Uwe Dieser Post wurde am 07.04.2006 um 22:29 Uhr von Uwe editiert. |