正在将int从SQL Server数据库保存到c#变量
本文关键字:保存 数据库 变量 Server SQL int | 更新日期: 2023-09-27 18:27:19
我对C#很陌生,但我需要将SQL Server数据库表中两列(balance
和withdraw
)的结果保存到C#变量中。我读到你应该使用SqlDataReader
,然后其他人说不要使用ExecuteScalar
,我真的很困惑。
这是我迄今为止的代码。感谢您的帮助。
private void subwithdraw_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=Student04'SQLEXPRESS;Initial Catalog=ATMdata;Integrated Security=True");
SqlCommand cmd = new SqlCommand("Command String", con);
SqlDataReader rdr = null;
try
{
using (var check_balance = con.CreateCommand())
using (var edit_balance = con.CreateCommand())
using (var edit_withdraw = con.CreateCommand())
{
check_balance.CommandText = @"select Balance, Withdraw
from Cust_details
Where Account_num ='" + show.AccNo + "' ";
}
}
}
I假设您的查询返回一行,您可以使用ExecuteReader
方法生成它们;
using(var rdr = check_balance.ExecuteReader())
{
while(rdr.Read())
{
int balance = rdr.GetInt32(0);
int withdraw= rdr.GetInt32(1);
}
}
ExecuteScalar
不适合您的情况,因为它返回查询第一行的第一列。其他列将被忽略。
但更重要的是,您应该始终使用参数化查询。这种字符串串联对SQL注入攻击是开放的。