[英]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.