J'ai une question concernant la mise à jour en utilisant SqlParameter
avec la class …
Dans ma class EditRecord
:
ssortingng strScript = ""; strScript = strScript + "UPDATE tbMemberInfo(FirstName,LastName,Age)"; strScript = strScript + "SET (FirstName = @firstname, LastName = @lastname, Age = @age)"; strScript = strScript + "WHERE id=@empID"; SqlCommand cmd; cmd = new SqlCommand(strScript, Connection); cmd.CommandTimeout = 0; cmd.Parameters.AddWithValue("@firstname", _members.Lastname)); cmd.Parameters.AddWithValue("@lastname", _members.FirstName)); cmd.Parameters.AddWithValue("@age", _members.Age)); cmd.Parameters.AddWithValue("@empID", _members.ID)); cmd.ExecuteNonQuery();
Appelez la class dans mon formulaire
Class.clsMemberInfo member = new Class.clsMemberInfo(); member.FirstName = txtFirstName.Text; member.Lastname = txtLastName.Text; member.Age = Convert.ToInt32(txtAge.Text); clsMembers memberInfo = new clsMembers(); memberInfo.Members = member; memberInfo.EditREcord(cnTestConnection); MessageBox.Show("Success");
Mais datatables ne sont pas mises à jour
modifier l'instruction SQL en tant que
ssortingng strScript = "UPDATE tbMemberInfo SET FirstName = @firstname, LastName = @lastname, Age = @age WHERE id=@empID";
la syntaxe de mise à
UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
il n'y a pas de noms de colonnes donnés dans () à côté du nom de la table
METTRE À JOUR
dans votre code _members.ID
n'est pas défini avant d'appeler la méthode
Class.clsMemberInfo member = new Class.clsMemberInfo(); member.FirstName = txtFirstName.Text; member.Lastname = txtLastName.Text; member.Age = Convert.ToInt32(txtAge.Text); member.ID = ??? //you need to give this value, otherwise your update will not work