MySqlConnection con = new MySqlConnection("host=db4free.net;user=*;password=*;database=*;");
    MySqlCommand xcmd = new MySqlCommand("SELECT x FROM members WHERE id='" + Login.idd + "';");
      xcmd.Connection = con;
        xint.Connection = con;
        DataTable dt = new DataTable();
        con.Open();
        xcmd.ExecuteNonQuery();
        int xx = (int)xcmd.ExecuteScalar();
        xcmd.Connection.Close();;
        xcmd.Dispose();
        x = xx;
        con.Close();
        if (x == 2)
        {
            button6.BackgroundImage = Properties.Resources.logo;
        }


我希望程序从数据库中读取X的值,将其添加到变量中,然后如果它等于2以显示徽标...

最佳答案

在原始代码中,您不需要一些内容。例如,DataTable,xint命令和ExecuteNonQuery(用于执行仅从数据库进行更新/插入/删除操作,而不返回结果的操作)

using(MySqlConnection con = new MySqlConnection("host=db4free.net;user=*;password=*;database=*;"))
{
    using(MySqlCommand xcmd = new MySqlCommand("SELECT x FROM members WHERE id=@loginid;"))
    {
        xcmd.connection = con;
        xcmd.Parameters.AddWithValue("@loginid", Login.idd);
        con.Open();
        int x = Convert.ToInt32(xcmd.ExecuteScalar());
        //Do something with x
        if(x == 2)
        {
            button6.BackgroundImage = Properties.Resources.logo;
        }
    }
}


如果要进行这种数据访问方式,建议使用查询parameterizing并使用'using'语句。

第一个将帮助防止SQL Injection攻击,第二个将确保在离开各个块的作用域时处置非托管资源。

关于c# - C#DB列值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16943770/

10-15 20:39