Problem bei der Initialisierung der CommandText-Eigenschaft
P粉668804228
P粉668804228 2024-04-04 22:43:24
0
1
598

Ich versuche, Daten mithilfe einer C#-Konsolenanwendung gleichzeitig in zwei (später drei) Tabellen zu materialisieren. Ich möchte Vorname, Nachname und Benutzer-ID in der Tabelle „Benutzer“ implementieren, die Benutzer-ID wird automatisch erhöht.

Die gleiche Benutzer-ID sollte zusammen mit porilfeID (wiederum automatisch über automatische Inkrementierung) und Profilname in die Tabelle „Profile“ implementiert werden.

Aber irgendwo wird eine Fehlermeldung ausgegeben, dass der Befehlstext nicht korrekt initialisiert ist und ich nicht mehr herausfinden kann, was ich falsch mache.

class SQLCreate
{
    public void create(int entries)
    {
        string ConnectionString = "server=localhost;uid=root;pwd=;database=databaseassignment;";

        MySqlConnection conn;
        MySqlCommand cmd;
        MySqlDataAdapter adapter;

        conn = new MySqlConnection();

        int entryValue = entries;
        conn.ConnectionString = ConnectionString;

        try
        {
            Stopwatch stopw = new Stopwatch();
            stopw.Start();
            conn.Open();

            cmd = new MySqlCommand();
            adapter = new MySqlDataAdapter();

            cmd.Connection = conn;

            for (int i = 0; i < entryValue; i++)
            {
          
                MySqlCommand cmd1 = new MySqlCommand("INSERT INTO user (firstName, lastName) VALUES (@firstName, @lastName)", conn);
                //MySqlCommand cmd1 = new MySqlCommand("INSERT INTO user (firstName, lastName) VALUES (@firstName, @lastName)", conn);
    
    
                cmd1.Parameters.AddWithValue("@firstName", "John");
                cmd1.Parameters.AddWithValue("@lastName", "Doe");
    
                cmd1.CommandType = CommandType.Text;
    
                int userId = Convert.ToInt32(cmd1.ExecuteScalar());
    
                MySqlCommand cmd2 = new MySqlCommand("INSERT INTO profile (userId, profileName) VALUES (@userId, @profileName)", conn);
    
                cmd2.Parameters.AddWithValue("@userId", userId);
                cmd2.Parameters.AddWithValue("@profileName", "John Doe");
                    
                cmd2.CommandType = CommandType.Text;
    
                cmd2.ExecuteNonQuery();
    
                string firstName = Faker.Name.First();
                string lastName = Faker.Name.Last();
                string profileName = Faker.Name.First();
    
                cmd.Parameters.Add("@firstName", MySqlDbType.String);
                cmd.Parameters["@firstName"].Value = firstName;
    
                cmd.Parameters.Add("@lastName", MySqlDbType.String);
                cmd.Parameters["@lastName"].Value = lastName;
    
                cmd.Parameters.Add("@profileName", MySqlDbType.String);
                cmd.Parameters["@profileName"].Value = profileName;
    
                cmd.ExecuteNonQuery();
            }
            conn.Close();
            stopw.Stop();
            Console.WriteLine(" Time elapsed: {0} ", stopw.Elapsed);
        } catch (MySql.Data.MySqlClient.MySqlException ex) {
            Console.WriteLine(ex.Message);
        }
    }
}
}

P粉668804228
P粉668804228

Antworte allen(1)
P粉337385922

您创建 cmd = new MySqlCommand(); 但从未设置其 .CommandText 属性。调用 cmd.ExecuteNonQuery(); 将失败,因为没有 CommandText 可以执行。

设置 cmd.CommandText 或将构造函数更改为 cmd = new MySqlCommand("text here", conn);

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage