Hej,我想检查我是否有足够的钱购买,我如何在 c# 和 MS SQL Server 中检查?
我试过了
" SELECT Money FROM [User] WHERE Isactive ='1' IF (SELECT Money FROM [User] >= '"+ customPayTextBox.Text+"') UPDATE [User] SET Money WHERE Isactive ='1' = Money - 100"
我也试过不SELECT Money FROM [User]
使用 if 语句。
我做错了吗?
它如何在 c# 中实现它?当我在单击按钮时运行此命令时,是否可以获得 true 或 false 作为回报?或者如果我没有足够的钱购买,命令不会运行?
您的SELECT
声明既不需要也不需要存储。这一切都可以通过WHERE
在UPDATE
语句中使用子句来完成。
我是根据 SQL Server 语法编写的,并已参数化查询以避免 SQL 注入。既没有你的 C# 代码也没有 db 模式,我使用了一个通用的 Sql 连接和命令类型;所以你很可能需要根据你的情况调整这个。
您需要做的另一件事是确定要更新哪一行,我对参数也进行了UserID
通用处理。
int rowsAffected;
string connString = "";
int Money = (int)customPayTextBox.Text;
using (SqlConnection conn = new SqlConnection(connString)) {
conn.Open();
using (SqlCommand cmd = new SqlCommand()) {
cmd.Connection = conn;
cmd.CommandText = "UPDATE [User] SET Money = Money - 100 WHERE (IsActive = '1') AND (UserID = @UserID) AND (Money >= @Money);";
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Money", Money);
cmd.Parameters.AddWithValue("@UserID", UserID);
rowsAffected = cmd.ExecuteNonQuery();
}
conn.Close();
}
if (rowsAffected == 0) { /* user not found OR not enough funds */ }
else { /* at least 1 row was updated */ }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句