使用数据库中存储的图像(图像路径)

本文关键字:图像 路径 存储 数据库 | 更新日期: 2023-09-27 17:59:45

我想让这个按钮的图像使用数据库中存储的图像(图像路径)。。。

        private void button15_Click(object sender, EventArgs e)
        {
            string a = button11.Text;
            string connString = "Server=Localhost;Database=test;Uid=*****;password=*****;";
            MySqlConnection conn = new MySqlConnection(connString);
            MySqlCommand command = conn.CreateCommand();
            command.CommandText = ("Select link from testtable where ID=" + a);
            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                //button11.Image = ex.ToString();
            }
            MySqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                button11.Image = reader["path"].ToString();                    
            }
        } 

我认为错误在于"reader["path"].ToString();",但我不知道该使用什么语法。

使用数据库中存储的图像(图像路径)

如果您将映像文件的路径存储在磁盘上的path列中,则应该使用以下映像:

    string path = (string)reader["path"];
    button11.Image = Image.FromFile(path);

附带说明:永远不要将用户输入的值直接传递给数据库查询。它很容易受到sql注入攻击。改为使用参数:

command.CommandText = "Select link from testtable where ID=@id";
command.Parameters.AddWithValue("@id", int.Parse(a));

试试这个:

        while (reader.Read())
        {
            string path = reader.GetString(0);
            button11.Image = Image.FromFile(path);                    
        }

试试这个:(写对了答案框,可能有打字错误!)

    private void button15_Click(object sender, EventArgs e)
    {
        string a = button11.Text;
        string imagePath;
        string connString = "Server=Localhost;Database=test;Uid=root;password=root;";
        using(MySqlConnection conn = new MySqlConnection(connString))
        using(MySqlCommand command = conn.CreateCommand())
        {
            command.CommandText = "Select link from testtable where ID=@id";
            command.Parameters.AddWithValue("@id", int.Parse(a));
            try
            {
                conn.Open();
                imagePath= (string)command.ExecuteScalar();
            }
            catch (Exception ex)
            {
            //button11.Image = ex.ToString();
            }
            button11.Image = Image.FromFile(imagePath);
        }
    }