2011-08-28 73 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

没有冒犯,但也许你需要首先了解这些东西,而不是理解你实际上在做什么,而不是编程。我的意思是说,你已经在你的代码中绑定了一个参数......显然你需要首先获得基础知识。 –

相关问题