我的代碼專門針對更新代碼出現問題。爲什麼SQL語句需要更新更多記錄?
private void updatebtn_Click(object sender, EventArgs e)
{
String Fname = fnametb.Text;
String Lname = lnametb.Text;
String Age = agetb.Text;
String Address = addresstb.Text;
String Course = coursetb.Text;
{
connection.Open();
OleDbCommand select = new OleDbCommand();
select.Connection = connection;
select.CommandText = "Select * From Accounts";
OleDbDataReader reader = select.ExecuteReader();
while (reader.Read())
{
OleDbCommand insert = new OleDbCommand("UPDATE Accounts SET [email protected], [email protected], [email protected], [email protected], [email protected] WHERE Lastname='"+ reader[2].ToString()+"'", connection);
insert.Parameters.Add("@Fname", OleDbType.VarChar).Value = Fname;
insert.Parameters.Add("@Lname", OleDbType.VarChar).Value = Lname;
insert.Parameters.Add("@Age", OleDbType.VarChar).Value = Age;
insert.Parameters.Add("@Address", OleDbType.VarChar).Value = Address;
insert.Parameters.Add("@Course", OleDbType.VarChar).Value = Course;
insert.ExecuteNonQuery();
fnametb.Clear();
lnametb.Clear();
agetb.Clear();
addresstb.Clear();
coursetb.Clear();
listBox1.Items.Clear();
searchtb.Clear();
}
connection.Close();
}
}
上面是我的代碼。每當我更新一條記錄時,表中的所有記錄都會受到影響。我認爲讀者有問題。 請幫忙,謝謝。
請爲您的問題選擇一個有意義的標題。 – 2013-02-28 08:23:14
第一個問題:你有一個潛在的SQL注入攻擊。使用「where」部分的參數以及新值。另外,鑑於它是一個*更新*,爲什麼你叫它*插入*? – 2013-02-28 08:24:31
調試你的代碼,並看看你的where語句裏有什麼。直接對你的數據庫執行你的sql-statemend – Tomtom 2013-02-28 08:24:39