Как называние изображения с C#, хранившаяся в SQL Server. Используя Сторед Проседуре и Энтити Фрамеворк

Я считаю этот код сделанным до настоящего времени, где я применяю SP "InsertarEmpleado", тот же самый добавляет реестры в BD:

var Insertar_NuevoEmpleado = _empleados.InsertarEmpleado(txtcedula.Text, txtnombres.Text, txtapellidos.Text, txtcargo.Text, txtdepartamento.Text, Convert.ToDecimal(txtsalario.Text), txtUrl.Text);

То, что я пробую сделать, является поисками с другим SP, где он принес реестры, соответствующие посланному параметру. Случается, что, формуляр обладает PictureBox, из-за способа, которого хранится изображение в базу данных (соответствующим образом хранится маршрут, где находится изображение) и это код поисков:

 private void btnBuscarEmpleado_Click(object sender, EventArgs e)
    {
        btnBuscarEmpleado.Image = imageList1.Images[0];

        if (string.IsNullOrEmpty(txtBuscarCedula.Text))
        {
            MessageBox.Show("Ingrese un número de cédula valido", "Buscar Empleado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            return;
        }

        empresaEntities _empleados = new empresaEntities();
        {
            nomina _trabajador = new nomina();

            var BuscarEmpleado = _empleados.BuscarEmpleados(txtBuscarCedula.Text).ToList();

            if (BuscarEmpleado.Count() > 0)
            {
                MessageBox.Show("El empleado existe en la base de datos.", "¡ATENCIÓN!", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                txtcedula.Text = BuscarEmpleado.FirstOrDefault().cedula.ToString("N0");
                txtnombres.Text = BuscarEmpleado.FirstOrDefault().nombres;
                txtapellidos.Text = BuscarEmpleado.FirstOrDefault().apellidos;
                txtcargo.Text = BuscarEmpleado.FirstOrDefault().cargo;
                txtdepartamento.Text = BuscarEmpleado.FirstOrDefault().departamento;
                txtsalario.Text = BuscarEmpleado.FirstOrDefault().salario.ToString("N2");
                txtUrl.Text = BuscarEmpleado.FirstOrDefault().UrlFoto;
                pictureBox1.Image = Image.FromFile(BuscarImagen.FileName); **<- AQUI me marca el ERROR**
            }

            else
            {
                MessageBox.Show("El número de cédula no existe en la base de datos. ¿Desea ingresar uno nuevo?", "Confirmar", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            }

        }
    }

Доказывается, что у pictureBox нет какого-либо кода. Вопрос, - как я делаю так называемый корреспондент для этого объекта, где тот же самый показал мне изображение, с которым присоединен параметр, посланный посредством SP.

Я комментирую им:

SP я функционирует очевидно без параметра Изображения, но идея состоит в том, чтобы приносить реестры и в свою очередь, что изображение появилось также.

Для большего количества info:

Я ищу изображение посредством следующего кода и храню маршрут изображения:

 private void btnBuscarFoto_Click(object sender, EventArgs e)
    {
        OpenFileDialog BuscarImagen = new OpenFileDialog();
        BuscarImagen.Filter = "Archivo PNG|*.png";

        if (BuscarImagen.ShowDialog() == DialogResult.OK)
        {
            pictureBox1.Image = Image.FromFile(BuscarImagen.FileName);
        }
            txtUrl.Text = BuscarImagen.FileName;
    }

Добавочный в это, когда я делаю Debugg приложения, меня помечает ошибка в этой линии, когда он пробует делать поиски.

 pictureBox1.Image = Image.FromFile(BuscarImagen.FileName);

Показывая следующее: Severity Коде Дескриптион Прохект Филе Лине Эррор CS1061 'List' does not contain в definition for 'FileName' and не расширение method 'FileName' accepting в first argument of type 'List' could be found (я пахал you missing в using directive or an assembly reference?)

Если у них есть мнения или ответы по этому поводу, примеры в EF.

Спасибо!

1
задан 26.02.2018, 21:39
2 ответа

Я решил ошибку, которую я написал в последнем комментарии.

я Был должен удалять модель и вновь загружать это, для того, чтобы он брал изменения, что hab¦ - в факт. Asà - что таким образом я функционировал aplicaci¦n, trayéndome изображение и данные, ассоциируемые с нею. Я оставляю c¦digo bot¦n "búsqueda" для всех тех, которые нуждаются в идее, сходной с m¦ - в:

 private void btnBuscarEmpleado_Click(object sender, EventArgs e)
    {
        btnBuscarEmpleado.Image = imageList1.Images[0];

        if (string.IsNullOrEmpty(txtBuscarCedula.Text))
        {
            MessageBox.Show("Ingrese un número de cédula valido", "Buscar Empleado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            return;
        }

       using(empresaEntities1 _empleados = new empresaEntities1())
        {
            nomina _trabajador = new nomina();

            var BuscarEmpleado = _empleados.BuscarEmpleados(txtBuscarCedula.Text).ToList();

            if (BuscarEmpleado.Count() > 0)
            {
                OpenFileDialog BuscarImagen = new OpenFileDialog();

                MessageBox.Show("El empleado existe en la base de datos.", "¡ATENCIÓN!", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                txtcedula.Text = BuscarEmpleado.FirstOrDefault().cedula;
                txtnombres.Text = BuscarEmpleado.FirstOrDefault().nombres;
                txtapellidos.Text = BuscarEmpleado.FirstOrDefault().apellidos;
                txtcargo.Text = BuscarEmpleado.FirstOrDefault().cargo;
                txtdepartamento.Text = BuscarEmpleado.FirstOrDefault().departamento;
                txtsalario.Text = BuscarEmpleado.FirstOrDefault().salario.ToString("N2");
                txtUrl.Text = BuscarEmpleado.FirstOrDefault().UrlFoto;
                pictureBox1.Image = Image.FromFile(txtUrl.Text);
            }

            else
            {
                MessageBox.Show("El número de cédula no existe en la base de datos. ¿Desea ingresar uno nuevo?", "Confirmar", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            }

        }
    }

Приняли во внимание, что был этот c¦digo diseñado с Энтити Фрамеворк.

1
ответ дан 24.11.2019, 01:34

Это пример, чтобы получать imÃ: гены, хранившийся в SQLServer:

    connection.Open();
    SqlCommand command1 = new SqlCommand("select imgfile from myimages where imgname=@param", connection);
    SqlParameter myparam = command1.Parameters.Add("@param", SqlDbType.NVarChar, 30);
    myparam.Value = txtimgname.Text;
    byte[] img = (byte[])command1.ExecuteScalar();
    MemoryStream str = new MemoryStream();
    str.Write(img, 0, img.Length);
    Bitmap bit = new Bitmap(str);
    connection.Close();
1
ответ дан 24.11.2019, 01:34
  • 1
    Cool! Он он поможет для тех, которые используют SQLcommand. В моем случае я использую EF. –  Dave 27.02.2018, 18:12