从显示数据库中每个用户控件的PictureBox的图片? [英] Show the picture from database to each usercontrol's picturebox?

查看:121
本文介绍了从显示数据库中每个用户控件的PictureBox的图片?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

用户控件代码:

 私人字符串的lastName; 
公共字符串姓氏
{
得到{lastName的; }

{
lastName的=价值;
textBox1.Text =价值;
}
}



表单代码:

 使用(SqlConnection的myDatabaseConnection =新的SqlConnection(myConnectionString.ConnectionString))
{
myDatabaseConnection.Open();使用(的SqlCommand的SqlCommand =新的SqlCommand(选择姓氏,从员工形象,myDatabaseConnection))

{



INT
I = 0;
SqlDataReader的DR1 = SqlCommand.ExecuteReader();
,而(DR1.Read())
{
I ++;
UserControl2用户控件=新UserControl2();
usercontrol.Tag = I;
usercontrol.LastName =(字符串)DR1 [姓氏];
flowLayoutPanel1.Controls.Add(用户控件);
}


}
}

通过上面的代码,我可以从每个用户控件的文本框数据库显示每个姓氏。 ?如何显示从数据库中每个用户控件的PictureBox的图片



这是我怎么显示从数据库中的单个图像:

 使用(SqlConnection的myDatabaseConnection =新的SqlConnection(myConnectionString.ConnectionString))
{
myDatabaseConnection.Open();使用
(的SqlCommand的SqlCommand =新的SqlCommand(选择姓氏,从员工那里图片ID = @a,myDatabaseConnection))
{
SqlCommand.Parameters.AddWithValue(@一,textBox1的。文本);
的DataSet DS =新的DataSet();
SqlDataAdapter的大=新SqlDataAdapter的(的SqlCommand);
da.Fill(DS,图像);
VAR imagesTable = DS.Tables [图像];
VAR imagesRows = imagesTable.Rows;
变种数= imagesRows.Count;

如果(计数< = 0)
的回报;
变种imageColumnValue =
imagesRows [数 - 1] [图像];
如果(imageColumnValue == DBNull.Value)
的回报;

VAR数据=(字节[])imageColumnValue;
使用(VAR流=新的MemoryStream(数据))
{
pictureBox1.Image = Image.FromStream(流);
}

}
}


解决方案

用户控件代码:

 公共无效showpictures()
{
{
使用(SqlConnection的myDatabaseConnection =新的SqlConnection(myConnectionString.ConnectionString))
{
myDatabaseConnection.Open();
使用(的SqlCommand的SqlCommand =新的SqlCommand(选择姓氏,从员工那里名字= @a形象,myDatabaseConnection))
{

SqlCommand.Parameters.AddWithValue(@一个,textBox1.Text);
的DataSet DS =新的DataSet();
SqlDataAdapter的大=新SqlDataAdapter的(的SqlCommand);
da.Fill(DS,图像);
VAR imagesTable = DS.Tables [图像];
VAR imagesRows = imagesTable.Rows;
变种数= imagesRows.Count;

如果(计数< = 0)
的回报;
变种imageColumnValue =
imagesRows [数 - 1] [图像];
如果(imageColumnValue == DBNull.Value)
的回报;

VAR数据=(字节[])imageColumnValue;
使用(VAR流=新的MemoryStream(数据))
{
pictureBox1.Image = Image.FromStream(流);
}


}
}
}
}

表格

 而(DR1.Read())
{
I ++;
UserControl2用户控件=新UserControl2();
usercontrol.Tag = I;
usercontrol.LastName =(字符串)DR1 [姓氏];
usercontrol.showpictures();
flowLayoutPanel1.Controls.Add(用户控件);
}


Usercontrol Code:

    private string lastName;
    public string LastName
    {
        get { return lastName; }
        set
        {
            lastName = value;
            textBox1.Text = value;
        }
    }

Form Code:

        using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
        {
            myDatabaseConnection.Open();
            using (SqlCommand SqlCommand = new SqlCommand("Select LastName, Image from Employee", myDatabaseConnection))

            {



                int i = 0;
                SqlDataReader DR1 = SqlCommand.ExecuteReader();
                while (DR1.Read())
                {
                    i++;
                    UserControl2 usercontrol = new UserControl2();
                    usercontrol.Tag = i;
                    usercontrol.LastName = (string)DR1["LastName"];
                    flowLayoutPanel1.Controls.Add(usercontrol);
                }


            }
        }

With the code above i can show each LastName from database in each usercontrol's textbox. How to show the picture from database to each usercontrol's picturebox?

This is how I display a single image from database:

        using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
        {
            myDatabaseConnection.Open();
            using (SqlCommand SqlCommand = new SqlCommand("Select LastName, Image from Employee where ID = @a", myDatabaseConnection))
            {
                SqlCommand.Parameters.AddWithValue("@a", textBox1.Text);
                DataSet DS = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter(SqlCommand);
                da.Fill(DS, "Images");
                var imagesTable = DS.Tables["Images"];
                var imagesRows = imagesTable.Rows;
                var count = imagesRows.Count;

                if (count <= 0)
                    return;
                var imageColumnValue =
                    imagesRows[count - 1]["Image"];
                if (imageColumnValue == DBNull.Value)
                    return;

                var data = (Byte[])imageColumnValue;
                using (var stream = new MemoryStream(data))
                {
                    pictureBox1.Image = Image.FromStream(stream);
                }

            }
        }  

解决方案

Usercontrol Code:

    public void showpictures()
    {
        {
            using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
            {
                myDatabaseConnection.Open();
                using (SqlCommand SqlCommand = new SqlCommand("Select LastName, Image from Employee where LastName = @a", myDatabaseConnection))
                {

                    SqlCommand.Parameters.AddWithValue("@a", textBox1.Text);
                    DataSet DS = new DataSet();
                    SqlDataAdapter da = new SqlDataAdapter(SqlCommand);
                    da.Fill(DS, "Images");
                    var imagesTable = DS.Tables["Images"];
                    var imagesRows = imagesTable.Rows;
                    var count = imagesRows.Count;

                    if (count <= 0)
                        return;
                    var imageColumnValue =
                        imagesRows[count - 1]["Image"];
                    if (imageColumnValue == DBNull.Value)
                        return;

                    var data = (Byte[])imageColumnValue;
                    using (var stream = new MemoryStream(data))
                    {
                        pictureBox1.Image = Image.FromStream(stream);
                    }


                }
            }
        }
    }

Form

            while (DR1.Read())
            {
                i++;
                UserControl2 usercontrol = new UserControl2();
                usercontrol.Tag = i;
                usercontrol.LastName = (string)DR1["LastName"];
                usercontrol.showpictures();
                flowLayoutPanel1.Controls.Add(usercontrol);
            }

这篇关于从显示数据库中每个用户控件的PictureBox的图片?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆