Suren97 Ответов: 1

C# как увидеть изображение после нажатия на кнопку в metrogrid или datagridview


У меня есть регистрационная форма,где пользователи могут заполнить свое имя,фамилию и так далее, а также загрузить изображение с компьютера.После загрузки изображения, когда я нажимаю на кнопку Register,данные этого пользователя сохраняются в базе данных.Тогда у меня есть другая форма, где я могу посмотреть все зарегистрированные пользователи в metroGrid,но только свои имя,фамилию,дату,страну и у меня тоже есть детали кнопка в metroGrid.когда я нажимаю на кнопку "Подробнее", открывается еще одна форма, где я могу увидеть слишком пользователем всех данных изображения.Все в порядке,я вижу все данные, кроме изображения, это дает мне ошибку.В чем проблема?

Это Регистрационная форма[^]
Это форма пользователя[^]
Это форма,где я могу видеть все данные пользователя и исключение[^]
Это таблица пользователей в базе данных[^]

Что я уже пробовал:

 //Upload button click
 private void bunifuImageButton6_Click(object sender, EventArgs e)
        {
            this.op = new OpenFileDialog();
            if (op.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = new Bitmap(op.FileName);
            }
            this.n = Path.GetFileName(op.SafeFileName);
        }
//Register button click
            string a = textBox1.Text;
            string b = textBox2.Text;
            string c = textBox3.Text;
            string d = textBox4.Text;
            string f = textBox5.Text;
            n = pictureBox1.Image.ToString();
            DateTime g = dateTimePicker1.Value;
                using (var context = new Suren_BankEntities())
                {
                    User user = new User()
                    {
                        Name = a,
                        Surname = b,
                        Country = c,
                        Login = d,
                        Password = f,
                        Date = g,
                        Photo = n,
                    };
               }
//MetroGrid's CellContentClick
 private void metroGrid1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int index = metroGrid1.CurrentCell.RowIndex;
            int id = (int)metroGrid1.Rows[index].Cells["Id"].Value;
            if (metroGrid1.Columns[e.ColumnIndex].Name == "Details")
            {
                    UserDatas u = new UserDatas(id);
                    u.Show();
            }
        }

private void UserDatas_Load(object sender, EventArgs e)
        {
            using (var context = new Suren_BankEntities())
            {
                User founded = context.Users.Find(id);
                label20.Text = founded.Name;
                label19.Text = founded.Surname;
                label18.Text = founded.Date.ToString();
                label17.Text = founded.Country;
                label16.Text = founded.CardNumber.ToString();
                label15.Text = founded.Login;
                label14.Text = founded.Password;
                label13.Text = founded.AMD.ToString();
                label12.Text = founded.RUR.ToString();
                label11.Text = founded.USD.ToString();
                pictureBox1.Image = new Bitmap(founded.Photo);
            }
        }

Ravi Bhavnani

Таким образом, вы получаете исключение null ref. Это должно быть довольно легко отследить, пройдя через код с помощью отладчика.

/Рави

1 Ответов

Рейтинг:
2

Gerry Schmitz

n = pictureBox1.Image.ToString();

Использование "ToString()" на изображении не дает вам "двоичного файла" "фотографии".

Это даст вам .NET "имя класса".

(После этого мало что связанное с "образами" имеет смысл).


Suren97

Это снова дает ту же ошибку