小编Mar*_*esp的帖子

C#更新数据库错误

try
{
    sqlCommandWithdraw.Connection.Open();
    sqlCommandWithdraw.Parameters["@cardNumber"].Value = Class1.cardNumber;
    readdata = sqlCommandWithdraw.ExecuteReader();

    while (readdata.Read())
    {
        balanceDB = decimal.Parse(readdata["balance"].ToString());
    }

    decimal withdrawAmm = Convert.ToDecimal(textWithdraw.Text);
    balanceDB = balanceDB - withdrawAmm;
    sqlCommandWithdraw.Connection.Close();

    sqlCommandUpdate.Connection.Open();
    sqlCommandUpdate.Parameters["@cardNumber"].Value = Class1.cardNumber;
    sqlCommandUpdate.Parameters["@balanceDB"].Value = Class1.cardNumber;
    readdata = sqlCommandUpdate.ExecuteReader();
    MessageBox.Show(balanceDB +" Successfully Withdrawn");
}
Run Code Online (Sandbox Code Playgroud)

我正在研究ATM机的代码我在撤销它有点东西它看起来很好但似乎没有改变余额以反映数据库中的提款

我的命令是这样的(更新)

update dbo.Accounts
set balance = @balanceDB
from dbo.ATMCards 
INNER JOIN dbo.Accounts ON dbo.ATMCards.accountID = dbo.Accounts.accountID
where (dbo.ATMCards.cardNumber = @cardNumber)
Run Code Online (Sandbox Code Playgroud)

这是我选择数据的命令

select dbo.Accounts.balance
from dbo.ATMCards 
INNER JOIN dbo.Accounts ON dbo.ATMCards.accountID = dbo.Accounts.accountID
where (dbo.ATMCards.cardNumber = @cardNumber)
Run Code Online (Sandbox Code Playgroud)

似乎运行得很好添加消息框来检查它感谢任何帮助欣赏它!

c# visual-studio-2010

2
推荐指数
1
解决办法
197
查看次数

想要更改一个数据库行而不是所有数据库行

我想更新我的数据库的一行.

这是一台ATM机,您首先输入一个卡帐号(它保存此号码以用于不同的表格).然后输入存款金额.问题是它正在更新每一行而不是与该卡相关联的单行.

这是代码:

    sqlCommandDeposit.Connection.Open();
    sqlCommandDeposit.Parameters["@cardNumber"].Value = Class1.cardNumber;

    using (SqlDataReader reader = sqlCommandDeposit.ExecuteReader())
    {

        if (reader.Read())
        {
            balanceDB = decimal.Parse(reader["balance"].ToString());
        }
    }
}
finally
{
    sqlCommandDeposit.Connection.Close();
}

decimal depositAmm = Convert.ToDecimal(textDeposit.Text);
balanceDB = balanceDB + depositAmm;

try
{
    sqlDepositupdate.Connection.Open();
    sqlDepositupdate.Parameters["@cardNumber"].Value = Class1.cardNumber;
    sqlDepositupdate.Parameters["@balanceDB"].Value = balanceDB;

    sqlDepositupdate.ExecuteNonQuery();
    MessageBox.Show("£" + depositAmm + " Successfully Deposited and Deposit Number Saved");
    MessageBox.Show("you have " + "£" + balanceDB + " available");
    buttonClear.Enabled = true;
    buttonExit.Enabled = true;
    buttonMainMenu.Enabled = true;


}

catch (Exception ex)
{ …
Run Code Online (Sandbox Code Playgroud)

c# t-sql visual-studio-2010

2
推荐指数
1
解决办法
166
查看次数

标签 统计

c# ×2

visual-studio-2010 ×2

t-sql ×1