Insérer des données dans une table de base de données avec zone de texte
J'essaie d'insérer des données dans une table et le code snipplet j'ai vu semble fonctionner pour cette personne, mais pour moi!
Je ne sais pas ce que je fais mal parce que je ne connais pas la manipulation de la base de données pour asp.net. Quelqu'un peut-il me dire de quoi de mal avec le code?
public partial class CompanyLogin : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
OdbcConnection conn = new OdbcConnection();
conn.ConnectionString = @".\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\VCtemps.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
string sql = "insert into company values(@CompName, @BusinessType, @Pword)";
OdbcCommand cmd = new OdbcCommand(sql);
string CompName = txtCompName.Text;
string BusinessType = DropDownList1.Text;
string Pword = txtPassword.Text;
cmd.Connection = conn;
cmd.CommandText = "insert into company(CompName, BusinessType, Pword) Values(@CompName,@BusinessType,@Pword);";
cmd.Parameters.AddWithValue("@CompName",SqlDbType.VarChar);
cmd.Parameters.AddWithValue("@BusinessType",SqlDbType.VarChar);
cmd.Parameters.AddWithValue("@Pword",SqlDbType.VarChar);
cmd.ExecuteNonQuery();
conn.Close();
txtCompName.Text = "";
txtPassword.Text = "";
DropDownList1.Text = "";
}
}
J'ai corrigé le code, merci à vous les gars, mais quand je le lance ou quand je clique sur le bouton enregistrer j'obtiens l'erreur suivante
ExecuteNonQuery nécessite une Connexion ouverte et disponible. La connexion est fermée
- votre commande insert doit être remaniée essayez d'utiliser SQL Params à la place..
Vous devez vous connecter pour publier un commentaire.
Vous pouvez régler votre requête
by deleting values
Nota : je vous suggère également d'utiliser
SqlCommand.Parameters.AddWithValue method
Et ajoutez ce code :
Essayer de changer les suivantes:
À:
Et:
À:
Supplémentaires:
Vous devez utiliser des requêtes paramétrées. Ne jamais passer à la saisie de l'utilisateur directement dans une instruction SQL que vous serez vulnérable à des attaques par injection SQL.
cmd.CommandText = "insert into valeurs de l'entreprise(CompName, BusinessType, Pword) values('"+ CompName + "','"+ BusinessType + "','" + Pword + "'");
de l'essayer....
Vérifier la ligne qui commence par
cmd.CommandText
pour les erreurs dans vos citations.Vous pouvez essayer en utilisant à la place la
String.Format
méthode comme ceci:J'ai trouvé qui m'aide à garder une trace de concaténer des variables beaucoup plus facile.
cmd.CommandText = "insert into company values(CompName, BusinessType, Pword) values('"+ CompName + "','"+ BusinessType + "','" + Pword + "')
est manquant";
à la fin.string sql = "insert into company values(@CompName, @BusinessType, @Pword)";
OdbcCommand cmd = new OdbcCommand(sql);
cmd.CommandText = "insert into company values(CompName, BusinessType, Pword) values('"+ CompName + "','"+ BusinessType + "','" + Pword + "')
les deux sont réglage CommandText, de sorte que vous pouvez supprimer
sql
et le changement
OdbcCommand cmd = new OdbcCommand(sql);
àOdbcCommand cmd = new OdbcCommand();
sql
chaîne de requête paramétrée.
Découvrez ci-dessous l'échantillon. Aussi envelopper votre connexion & commande à l'intérieur de
using clause