J’ai une application ASP.NET et une firebase database MySQL. Je veux écrire une classe pour insérer, supprimer et afficher les données de la firebase database. J’ai une connexion à la firebase database mais je ne peux pas insérer de données dans la firebase database.
Ma méthode d’insertion de classe:
public ssortingng CreateEntry(ssortingng Connectionssortingng, ssortingng mitarbeiter) { connection = new MySqlConnection(Connectionssortingng); try { var command = connection.CreateCommand(); command.CommandText = "INSERT INTO tb_mitarbeiter (Vorname) VALUES ('tom')"; connection.Open(); return "Mitarbeiter wurde angelegt"; } catch (Exception ex) { return ex.Message; } finally { connection.Close(); } }
La Connectionssortingng
est correcte. Je n’ai pas d’erreur mais il n’y a pas de données dans la firebase database.
Mon nom de fichier: tb_mitarbeiter columns: ID et Vorname
Vous devriez simplement exécuter la commande
.... MySqlCommand command = connection.CreateCommand(); command.CommandText = "INSERT INTO tb_mitarbeiter (Vorname) VALUES ('tom')"; connection.Open(); command.ExecuteNonQuery(); ....
Je suppose que mitarbeiter
est la valeur réelle qui devrait être définie dans la firebase database.
Si tel est le cas, n’oubliez pas d’utiliser des parameters pour insérer / mettre à jour vos données.
MySqlCommand command = connection.CreateCommand(); command.CommandText = "INSERT INTO tb_mitarbeiter (Vorname) VALUES (?name)"; command.Parameters.AddWithValue("?name", mitarbeiter); connection.Open(); command.ExecuteNonQuery();
Pour faire une insertion / mise à jour / supprimer u devrait append
connection.Open(); command.ExecuteNonQuery();
Pour que select () affiche les données issues de l’utilisation de la firebase database:
connection.Open(); command.ExecuteReader();
Vous avez oublié d’exécuter la commande en appelant command.ExecuteNonQuery (). Voici comment je le ferais généralement:
public ssortingng CreateEntry(ssortingng connectionSsortingng, ssortingng valueToInsert) { var ssortingngToReturn = ""; try { using(var connection = new MySqlConnection(connectionSsortingng)) { //Open connection connection.Open(); //Compose query using sql parameters var sqlCommand = "INSERT INTO table_name (field_name) VALUES (@valueToInsert)"; //Create mysql command and pass sql query using(var command = new MySqlCommand(sqlCommand, connection)) { command.Parameters.AddWithValue("@valueToInsert", valueToInsert); command.ExecuteNonQuery(); } ssortingngToReturn ="Success Message"; } } catch(exception ex) { ssortingngToReturn = "Error Message: " + ex.Message; } return ssortingngToReturn; }
Il y a quelques points clés à garder à l’esprit:
Vous n’exécutez pas la commande, utilisez SqlCommand.ExecuteNonQuery
try { MySqlCommand command = connection.CreateCommand(); command.CommandText = "INSERT INTO tb_mitarbeiter (Vorname) VALUES ('tom')"; connection.Open(); command.ExecuteNonQuery(); return "Mitarbeiter wurde angelegt"; } catch (Exception ex) { return ex.Message; } finally { connection.Close(); }
Vous avez manqué d’écrire ceci: –
.... connection.Open(); command.ExecuteNonQuery(); ....
{
ssortingng MyConnection2 = “datasource = localhost; port = 3306; nom d’utilisateur = root; mot de passe = 1234”;
ssortingng Query = "insert into DBname.TableName(id,Name,First_Name,Age,Address) values('" +this.IdTextBox.Text+ "','" +this.NameTextBox.Text+ "','" +this.FirstnameTextBox.Text+ "','" +this.AgeTextBox.Text+ "','" +this.AddressTextBox.Text+ "');"; MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2); MySqlDataReader MyReader2; MyConn2.Open(); MyReader2 = MyCommand2.ExecuteReader(); MessageBox.Show("Save Data"); while (MyReader2.Read()) { } MyConn2.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); }
}
Vous pouvez également utiliser le paramètre Sql pour empêcher l’injection de Sql
try { MySqlCommand command = connection.CreateCommand(); command.CommandText = @"INSERT INTO `tb_mitarbeiter` (`Vorname`) VALUES (@tom)"; command.Parameters.AddWithValue("@tom", tom); connection.Open(); command.ExecuteNonQuery(); return "Mitarbeiter wurde angelegt"; } catch (Exception ex) { return ex.Message; } finally { command.Dispose(); command.Close(); connection.Close(); }