簡體   English   中英

無法將數據更新到SQL表中

[英]Unable to update data into SQL table

我有一個問題。 當我把這個代碼

protected void Page_Load(object sender, EventArgs e)
{
    string email = Membership.GetUser(User.Identity.Name).Email;
    MembershipUser currentUser = Membership.GetUser();
    string UserId = currentUser.ProviderUserKey.ToString();

    **TextBox2.Text = email;
    TextBox3.Text = UserId;**
}

我的數據不會保存到數據庫中。

 {
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
    SqlCommand cmd = new SqlCommand("UPDATE aspnet_Membership SET Email = @email WHERE UserId = @id1", conn);

    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@email", TextBox2.Text);
    cmd.Parameters.AddWithValue("@id1", TextBox3.Text);
    try
    {
        conn.Open();
        cmd.ExecuteNonQuery();

    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        conn.Close();
    }

但是當我刪除

 **TextBox2.Text = email;
TextBox3.Text = UserId;**

使用上面的代碼將數據保存到數據庫中。 有人可以告訴我為什么嗎? 提前致謝。

鑒於你永遠不會執行命令,我無法解釋它。

 
 
 
  
  cmd.ExecuteNonQuery();
 
  

到您的點擊方法結束

因為您在頁面加載事件中設置值,所以當回發按鈕時,它們會覆蓋控件中更改的值。 用一個包裝你的頁面加載代碼

 if (!Page.IsPostback) { string email = Membership.GetUser(User.Identity.Name).Email; MembershipUser currentUser = Membership.GetUser(); string UserId = currentUser.ProviderUserKey.ToString(); TextBox2.Text = email; TextBox3.Text = UserId; } 

你永遠不會執行你的SQL,所以我很驚訝你的數據庫正在更新。

看一下ExecuteNonQuery方法。 使用當前查詢,您將創建一個SQLCommand,然后從不運行SQL。

請嘗試以下方法

cmd.Connection = conn;
cmd.Connection.Open()

分配之后再分配

cmd.ExecuteNonQuery();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM