пытаюсь занести изображение с помощью следующего кода:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace CosmeticsShop
{
public partial class AddProducts : Form
{
public AddProducts()
{
InitializeComponent();
}
private void AddProducts_Load(object sender, EventArgs e)
{
MySqlConnection mysqlconn;
try
{
MySqlConnectionStringBuilder msql = new MySqlConnectionStringBuilder();
msql.Server = "localhost";
msql.UserID = "root";
msql.Password = "";
msql.Database = "shopcosm";
msql.Port = 3306;
msql.ConvertZeroDateTime = true;
msql.SslMode = MySqlSslMode.None;
using (mysqlconn = new MySqlConnection(msql.ConnectionString))
{
mysqlconn.Open();
var query = "SELECT NameCategory FROM category";
using (var command = new MySqlCommand(query, mysqlconn))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
comboBox1.Items.Add(reader.GetString("NameCategory"));
}
}
}
mysqlconn.Close();
}
}
catch (MySqlException ex)
{
MessageBox.Show(ex.ToString());
}
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
private void button1_Click(object sender, EventArgs e)
{
MySqlCommand sqlCommand = new MySqlCommand();
try
{
if (textBox1.Text != "" && comboBox1.Text != "" && textBox3.Text != "" && textBox4.Text != "")
{
MySqlConnectionStringBuilder msql = new MySqlConnectionStringBuilder();
msql.Server = "localhost";
msql.UserID = "root";
msql.Password = "";
msql.Database = "shopcosm";
msql.Port = 3306;
msql.SslMode = MySqlSslMode.None;
MySqlConnection connection = new MySqlConnection(msql.ConnectionString);
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] image = ms.ToArray();
string zapros = "INSERT INTO tovars(idCategory,Size,Color,Price,Image) VALUES ((SELECT idCategory FROM category WHERE NameCategory='" + comboBox1.Text + "'),'" + textBox1.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','@imgp')";
connection.Open();
sqlCommand.Parameters.Add("@imgp", MySqlDbType.Blob);
if (image == null) { } else { sqlCommand.Parameters["@imgp"].Value = image; }
sqlCommand = new MySqlCommand(zapros, connection);
if (sqlCommand.ExecuteNonQuery() == 1)
{
MessageBox.Show("Данные успешно внесены!", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
Close();
}
else if (sqlCommand.ExecuteNonQuery() == 0)
{
MessageBox.Show("Ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
Close();
}
else { }
connection.Close();
}
else
{
MessageBox.Show("Заполните все поля и попробуйте еще раз", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (MySqlException ex)
{
MessageBox.Show(ex.ToString(), "Ошибка", MessageBoxButtons.OK);
}
}
private void button3_Click(object sender, EventArgs e)
{
OpenFileDialog opf = new OpenFileDialog();
opf.Filter = "Выберите изображение(*.jpg; *.png; *.gif)|*.jpg; *.png; *.gif";
if (opf.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(opf.FileName);
}
else { }
}
}
} Но в итоге заносится в значение просто @imgp, хотя при отладке у нас байтовый массив заполняется нормально.
Вдруг кому будет интересно как я решил эту пагубную затею то вот измененный код
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Store_Cloth
{
public partial class AddProduct : Form
{
public string pathImage { get; private set; }
MySqlConnectionStringBuilder mySqlConnectionStringBuilder = new
MySqlConnectionStringBuilder();
MySqlConnection connection;
public AddProduct()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (true)
{
mySqlConnectionStringBuilder.Server = "localhost";
mySqlConnectionStringBuilder.UserID = "root";
mySqlConnectionStringBuilder.Password = "";
mySqlConnectionStringBuilder.Database = "clothing_store";
mySqlConnectionStringBuilder.Port = 3306;
mySqlConnectionStringBuilder.SslMode = MySqlSslMode.None;
connection = new MySqlConnection(mySqlConnectionStringBuilder.ConnectionString);
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] image = ms.ToArray();
string query = "INSERT INTO tableofcloth(idCategory,Size,NameCloth,Color,Price,ImageT) VALUES ((SELECT idCategory FROM category WHERE NameCategory='" + comboBox1.Text + "'),'" + textBox1.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox2.Text + "',@imgp)";
connection.Open();
MySqlCommand sqlCommand = new MySqlCommand(query, connection);
sqlCommand.Parameters.Add(new MySqlParameter("@imgp", MySqlDbType.Blob)).Value = image;
if (sqlCommand.ExecuteNonQuery() == 1)
{
MessageBox.Show("Данные успешно внесены!", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
Close();
}
else if (sqlCommand.ExecuteNonQuery() == 0)
{
MessageBox.Show("Ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
Close();
}
else { }
connection.Close();
}
else
{
MessageBox.Show("Заполните все поля и попробуйте еще раз", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (MySqlException ex)
{
MessageBox.Show(ex.ToString(), "Ошибка", MessageBoxButtons.OK);
}
}
private void button3_Click(object sender, EventArgs e)
{
OpenFileDialog opf = new OpenFileDialog();
opf.Filter = "Выберите изображение(*.jpg; *.png; *.gif)|*.jpg; *.png; *.gif";
if (opf.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(opf.FileName);
}
}
private void AddProduct_Load(object sender, EventArgs e)
{
MySqlConnection mysqlconn;
try
{
MySqlConnectionStringBuilder msql = new MySqlConnectionStringBuilder();
msql.Server = "localhost";
msql.UserID = "root";
msql.Password = "";
msql.Database = "clothing_store";
msql.Port = 3306;
msql.ConvertZeroDateTime = true;
msql.SslMode = MySqlSslMode.None;
using (mysqlconn = new MySqlConnection(msql.ConnectionString))
{
mysqlconn.Open();
var query = "SELECT NameCategory FROM category";
using (var command = new MySqlCommand(query, mysqlconn))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
comboBox1.Items.Add(reader.GetString("NameCategory"));
}
}
}
mysqlconn.Close();
}
}
catch (MySqlException ex)
{
MessageBox.Show(ex.ToString());
}
}
}
} Всем спасибо кто откликнулся и предлагал свои варианты решения данной проблемы!
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Можно ли установитьNet Framework без установщика от Microsoft а своими руками? Копированием и т
Какой более свежий PostgreSQL и библиотека Npgsql для него, которые могли бы работать и на WinXP SP2 с Net Framework 20 и на Win7,8,10? или как поступить в таком случае?