if(计数器==< 数据库值>)

cx6n0qe3  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(295)

如何将数据库中的值作为int,用于if-else函数?
例如:在我的数据库“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 == )
{
}
fjaof16o

fjaof16o1#

一个选择是 MySqlDataAdapter 这样地:

MySqlDataAdapter da = new MySqlDataAdapter {SelectCommand = cmd};
DataSet ds = new DataSet();
int armnumber = da.Fill(ds);
...
if (counter == armnumber)

此外,还应始终使用参数化查询以避免sql注入:

string sqlStr = "Select armnumber from assign where id=@id"; 
cmd.Parameters.AddWithValue("@id", 1);
//Or better
cmd.Parameters.Add("@id", SqlDbType.Int).Value = 1;
bjg7j2ky

bjg7j2ky2#

您应该替换此代码

connection.Open();
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();
int databaseValue = int.Parse(reader["armnumber"].ToString());
connection.Close();
j2cgzkjk

j2cgzkjk3#

一些初始注解:
得到异常后继续操作将不是一个好的做法,所以我更喜欢条件 if (counter == xx ) 内部 try 阻止。
如果 IDwhere 子句是变量,然后使用参数化代替串联查询。
因为您只获取一个字段,所以请使用 ExecuteScalar 而不是 ExecuteNonQuery 你可以利用 using als可以很好地管理连接和命令对象。
所以代码可以写成:

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)
{
}

相关问题