2016-02-28 81 views
-1

我想编辑从数据库读取的值。我读的代码是:(这是在我的Page_Load中)ASP.NET:无法更新从数据库读取的值

string uname = Session["ApplicantUsername1"].ToString(); 
txtUsername.Text = uname; 

cs.Open(); 
SqlCommand cmd = new SqlCommand("SELECT NoALastName, NoAFirstName, NoAMiddleName FROM CustomerCreditReport WHERE ApplicantUsername = '" + uname + "'", cs); 
SqlDataReader reader = cmd.ExecuteReader(); 

while (reader.Read()) 
{ 
    txtLname.Text = reader["NoALastName"].ToString(); 
    txtFname.Text = reader["NoAFirstName"].ToString(); 
    txtMname.Text = reader["NoAMiddleName"].ToString(); 
} 
cs.Close(); 
reader.Close(); 

现在,这是我保存/更新代码。 (这是在Save_Click下)

SqlDataAdapter da = new SqlDataAdapter(); 
da.UpdateCommand = new SqlCommand("UPDATE CustomerCreditReport SET NoALastName = @NoALastName, NoAFirstName = @NoAFirstName, NoAMiddleName = @NoAMiddleName WHERE ApplicantUsername = '" + txtUsername.Text + "'", cs); 
da.UpdateCommand.Parameters.Add("@NoALastName", SqlDbType.VarChar).Value = txtLname.Text; 
da.UpdateCommand.Parameters.Add("@NoAFirstName", SqlDbType.VarChar).Value = txtFname.Text; 
da.UpdateCommand.Parameters.Add("@NoAMiddleName", SqlDbType.VarChar).Value = txtMname.Text; 
cs.Open(); 
da.UpdateCommand.ExecuteNonQuery(); 
cs.Close(); 

我想知道我是否忽视了某些东西。请帮忙。谢谢。

+0

你有什么问题?你有什么异常吗? –

+0

此外,您仍然容易受到SQL注入的影响。你也应该参数化你的where子句。 –

+0

为什么你使用DataAdapter?只需使用普通的sqlcommand /连接 – Gusman

回答

1
在页面加载

确保你把你的代码,如果之后(!Page.IsPostBack) 这样

if (!Page.IsPostBack) 
{ 
    string uname = Session["ApplicantUsername1"].ToString(); 
     txtUsername.Text = uname; 

     cs.Open(); 
     SqlCommand cmd = new SqlCommand("SELECT NoALastName, NoAFirstName, NoAMiddleName FROM CustomerCreditReport WHERE ApplicantUsername = '" + uname + "'", cs); 
SqlDataReader reader = cmd.ExecuteReader(); 

     while (reader.Read()) 
     { 
      txtLname.Text = reader["NoALastName"].ToString(); 
      txtFname.Text = reader["NoAFirstName"].ToString(); 
      txtMname.Text = reader["NoAMiddleName"].ToString(); 
     } 
     cs.Close(); 
     reader.Close(); 
} 
+0

谢谢你。 :) – Edge

+0

好赶上...! –