2011-08-28 82 views
0

我可以這樣做嗎?數據庫更新期間可以增加一些值嗎?

int somevalue=500; 
string getUpSql = "UPDATE money FROM bank SET Money= @Money + somevalue WHERE [email protected]"; 

我想加一些錢給點擊按鈕的賬戶

protected void BtnWork_Click(object sender, EventArgs e) 
    { 
     MembershipUser currentUser = Membership.GetUser(); 
     Guid currentUserId = (Guid)currentUser.ProviderUserKey; 
string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
string getUpSql = "UPDATE money FROM bank SET Money= @Money + somevalue WHERE [email protected]"; 
using (SqlConnection myConnection = new SqlConnection(ConnectionString)) 
     { 

      SqlCommand myCommand = new SqlCommand(getUpSql, myConnection); 
myConnection.Open(); 

myCommand.Parameters.AddWithValue("@Money",SqlDbType.Int); 

myCommand.ExecuteNonQuery(); 

      myConnection.Close(); 
     } 
+0

如果你使用'@ UserId',使確定將其作爲參數傳入。發佈錯誤消息和Custon_MoneyWork表的定義會有所幫助。 – Andomar

+0

有沒有錯誤,它只是不工作:) @用戶ID是好的。 – RaShe

+0

問題是 - 我怎麼加「somevalue」? – RaShe

回答

1

您沒有遞增價值。您將其設置爲@Money + somevalue,其中@Money設置爲任何值SqlDbType.Int

改變你的SQL本...

UPDATE money FROM bank SET Money = Money + @somevalue WHERE UserId = @UserId 

...然後設置@somevalue@UserId參數是這樣的...

int somevalue = ... ; 
myCommand.Parameters.AddWithValue("somevalue", somevalue); 
TypeOfUserId UserId = ... ; 
myCommand.Parameters.AddWithValue("UserId", UserId); 
3

UPDATE聲明量在一個名爲@somevalue參數來增加一個名爲Money列的語法是

UPDATE bank 
SET  Money = Money + @somevalue /* Can use Money += @somevalue if 2008 */ 
WHERE UserId = @UserId 
+0

我如何聲明@somevalue? – RaShe

1

UPDATE money FROM bank SET Money= @Money + somevalue WHERE [email protected]

您確定要@Money?如果您想通過某些值增加存儲在Money列中的值,則需要將其編寫爲​​,並且必須將某個值綁定爲參數,而不是Money

+0

U是對的,但我不知道如何聲明@somevalue – RaShe

+1

沒有冒犯,但也許你需要首先了解這些東西,而不是理解你實際上在做什麼,而不是編程。我的意思是說,你已經在你的代碼中綁定了一個參數......顯然你需要首先獲得基礎知識。 –

相關問題