对于update语句,应该使用sqlcommand对象。
SqlCommand cmd = new SqlCommand( "INSERT INTO my_table (name, lastname) VALUES ('John', 'Doe')", My.Settings.ConnectionString);
cmd.ExectureNonQuery();
但是,建议您使用参数化SQL查询,前提是您可能正在从用户处获取数据,以减少SQL注入攻击的机会:)
SqlCommand cmd = new SqlCommand( "INSERT INTO my_table (name, lastname) VALUES (@FirstName, @LastName)", My.Settings.ConnectionString);
cmd.Parameters.Add("FirstName", SqlDbType.NVarChar);
cmd.Parameters.Add("LastName", SqlDbType.NVarChar);
cmd.Parameters[0].Value = txtFirstName.Text;
cmd.Parameters[1].Value = txtLastName.Text;
cmd.ExecuteNonQuery();
回答你的其他问题:
对。如果发生主键冲突,将引发SQLException。您可以使用Try-Catch块来捕获它,并显示消息或执行任何适当的操作。
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show("Error! " + ex.Message);
}