如何从数据库中将值作为可以用于if else函数的int?
例如:在我的数据库“ armnumber = 3”中,如何在if else函数中使用它?
代码
string myConnectionString;
myConnectionString = "server=localhost;uid=root;pwd=root;database=medicloud;SslMode=None;charset=utf8";
try
{
MySqlConnection connection = new MySqlConnection(myConnectionString);
MySqlCommand cmd = new MySqlCommand();
cmd.CommandType = CommandType.Text;
string sqlStr = "Select armnumber from assign where id=1";
cmd.CommandText = sqlStr;
cmd.Connection = connection;
connection.Open();
cmd.ExecuteNonQuery();
}
catch (MySqlException ex)
{
}
#endregion
if (counter == )
{
}
答案 0 :(得分:1)
一个选项为MySqlDataAdapter
,如下所示:
MySqlDataAdapter da = new MySqlDataAdapter {SelectCommand = cmd};
DataSet ds = new DataSet();
int armnumber = da.Fill(ds);
...
if (counter == armnumber)
此外,您应始终使用parameterized queries来避免SQL Injection:
string sqlStr = "Select armnumber from assign where id=@id";
cmd.Parameters.AddWithValue("@id", 1);
//Or better
cmd.Parameters.Add("@id", SqlDbType.Int).Value = 1;
答案 1 :(得分:0)
少量初始注释:
if (counter == xx )
块中的条件try
。ID
子句中where
的值是可变的,则对连接查询使用参数化。ExecuteScalar
代替ExecuteNonQuery
using
来正确管理连接和命令对象。所以代码可以写成:
try
{
string sqlStr = "Select armnumber from assign where id=@id";
MySqlConnection connection = new MySqlConnection(myConnectionString);
MySqlCommand cmd = new MySqlCommand();
cmd.Parameters.AddWithValue("@id", 1);
cmd.CommandType = CommandType.Text;
cmd.CommandText = sqlStr;
cmd.Connection = connection;
connection.Open();
var result = cmd.ExecuteScalar();
int armnumber = result != null ? int.Parse(result.ToString()) : 0;
if (counter == armnumber)
{
// code here
}
}
catch (MySqlException ex)
{
}
答案 2 :(得分:0)
您应该替换此代码
connection.Open();
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();
int databaseValue = int.Parse(reader["armnumber"].ToString());
connection.Close();