如果(计数器== <数据库值>)

时间:2018-07-05 07:02:02

标签: c# mysql database

如何从数据库中将值作为可以用于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 == )
{
}

3 个答案:

答案 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();