Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 13:20

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Datenbank Fehler

Discussion on Datenbank Fehler within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1


 
Reaper of Souls's Avatar
 
elite*gold: 30
Join Date: Oct 2013
Posts: 916
Received Thanks: 36
Datenbank Fehler

Hallo,

ich bekomme bei meinem Programm immer den Fehler: Column count doesnt match value count at row 1.

Der Code:

Code:
        private void button10_Click(object sender, EventArgs e)
        {
            string insertQuery = "INSERT INTO forgottensouldb.tanks(`ID`,`Discord Name`,`Join Date`,`Character Name1`,`Realm`,`Class and Spec`,`Character Name2`,`Class and Spec2`,`Bench Player`,`Performance`,`Too late`,`Not excused Absence`,`Other notes`)VALUES('" + textBox1.Text + "', '" + textBox2.Text + "', " + textBox3.Text + textBox4.Text + "'," + textBox5.Text + textBox6.Text + "', " + textBox7.Text + textBox8.Text + "'," + textBox9.Text + textBox10.Text + "', " + textBox11.Text + textBox12.Text + "'," + textBox13.Text + "')";
            connection.Open();
            MySqlCommand command = new MySqlCommand(insertQuery, connection);

            try
            {
                if (command.ExecuteNonQuery() == 1)
                {
                    MessageBox.Show("Data Inserted");
                }
                else
                {
                    MessageBox.Show("Data Not Inserted");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            connection.Close();

        }
    }
}
Das Programm:
Die Datenbank:

Kann mir da jemand weiterhelfen?
Ich finde den Fehler einfach nicht...

Vielen dank im voraus
Reaper of Souls is offline  
Old 04/05/2021, 15:39   #2
Administrator
 
lordsill's Avatar
 
elite*gold: 26516
Join Date: May 2011
Posts: 21,003
Received Thanks: 2,346
Du solltest dir nochmal deine Query anschauen:
1) Du vergisst gerne mal die ' - du beginnst ohne, aber endest mit einem, z.B.:
Quote:
"', " + textBox3.Text + textBox4.Text + "',"
2) Bedenke auch, dass sowas wie textBox3.Text + textBox4.Text die beiden Texte einfach zusammenführt. Wenn also bspw. in textBox3 "abc" und in textBox4 "123" steht wäre es das selbe wie: "abc123". Wenn du jetzt die Query einfach mal so versuchst den Spalten zuzuordnen siehst du, dass du auch nicht genug Daten einfügst.
ID = textBox1
Discord Name = textBox2
Join Date = textBox3 + textBox4
Character Name1 = textBox5 + textBox6
Realm = textBox7 + textBox8
Class and Spec = textBox9 + textBox10
Character Name2 = textBox11 + textBox12
Class and Spec2 = textBox13
Und alle anderen Spalten würden keine Werte mehr bekommen. (Dies aber alles auch nur, wenn zumindest noch das fehlende ' am Anfang gesetzt worden wäre)

Aktuell kannst du dir deine Query auch als sowas vorstellen:
INSERT INTO forgottensouldb.tanks(`ID`,`Discord Name`,`Join Date`,`Character Name1`,`Realm`,`Class and Spec`,`Character Name2`,`Class and Spec2`,`Bench Player`,`Performance`,`Too late`,`Not excused Absence`,`Other notes`)VALUES('abc', 'abc', abcabc',abcabc', abcabc',abcabc', abcabc',abc')
[Wenn ich in alle Textboxen einfach nur "abc" eingeben würde]

Ich lasse mal dabei außen vor, dass dein Programm sehr anfällig für bspw. SQL-Injection ist.
lordsill is offline  
Old 04/05/2021, 19:28   #3

 
0x0009000's Avatar
 
elite*gold: 20
Join Date: Jun 2010
Posts: 15
Received Thanks: 3
Thumbs up

ich lass dir den mal hier


Code:
              
            var _connBuilder = new MySqlConnectionStringBuilder()
            {
                Server = "127.0.0.1",
                Database = "dbname",
                UserID = "username",
                Password = "passwort"
            };

using (var conn = new MySqlConnection(_connBuilder.ConnectionString))
            {
                conn.Open();

                using (var cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "INSERT INTO `forgottensouldb.tanks`(`id`, `value1`, `value2`) VALUES (null,  [MENTION=3453695]ValuE1[/MENTION],  [MENTION=3455287]value2[/MENTION])";
                    cmd.Parameters.AddWithValue(  [MENTION=3453695]ValuE1[/MENTION], value1);
                    cmd.Parameters.AddWithValue(  [MENTION=3455287]value2[/MENTION], value2);
                    int rowCount = cmd.ExecuteNonQuery();

                }
                conn.Close();
            }
kannst die connection und mysql commands alle in using statements kleiden, dann brauchst du dich später nicht über unnötige memory allocations aufregen und tote verbindungen. die parameter geben dir die nötige sicherheit gegen xss und gegen tippfehler falls du nicht "versehentlich" die ganze tabelle überschreiben willst. mach bitte die leerzeichen aus den spaltennamen weg


edit:
//gut das dass forum die @ value mit irgendwelchen mentions ersetzt
0x0009000 is offline  
Reply


Similar Threads Similar Threads
DayzCoord2Map DayZ Datenbank zu GPS GPS zu Datenbank Tool
02/05/2013 - DayZ - 14 Replies
Hallo, Hier zeig ich euch ein von mir programmiertes Tool mit dem könnt ihr: Die Daten aus der Datenbank aus DayZ-Private Servern in GPS Koordinaten umwandeln Sie auf Dayzdb.com anzeigen Die GPS Koordinaten in DatenBank-Informationen umwandeln Sie auf Dayzdb.com anzeigen
[S] ||> Pandora 2 <|| Datenbank :inc. Acc Datenbank: + Serverfiles
03/15/2012 - Metin2 Trading - 3 Replies
Verkaufe die Kompletten Serverfiles von Pandora 2 In der Datenbank sind noch alle E-Mails und Passwörter von dem aktuellen Pandora Server. ** 14000 User Einträge. Ihr musstet nur den aktuellen Pandora Client runterladen und eure Server IP einfügen schon habt ihr Pandora gehackt :D Bezahl möglichkeit PSC
Gameserver-Datenbank Homepage-Datenbank
09/30/2010 - Metin2 Private Server - 4 Replies
Gameserver-Datenbank SQL-Server (Gameserver) SQL-User (Gameserver) SQL-Passwort (Gameserver) SQL-Server (Homepage)



All times are GMT +1. The time now is 13:21.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.