Member 12861580 Ответов: 1

Пустое имя пути не является законным, когда я сохраняю изображения приложения C# windows


Я хочу сохранить несколько изображений теперь, когда я сохраняю все 2 изображения, я не получаю никаких исключений... но когда я пытаюсь сохранить только 1 или 2 или его выбрасывает исключение "пустой путь не является законным". мой код здесь

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

byte[] img = null;
  FileStream fs = new FileStream(imgloc, FileMode.Open, FileAccess.Read);
  BinaryReader br = new BinaryReader(fs);
  img = br.ReadBytes((int)fs.Length);

  //

  byte[] img1 = null;
  FileStream fs1 = new FileStream(imgloc1, FileMode.Open, FileAccess.Read);
  BinaryReader br1 = new BinaryReader(fs1);
  img1 = br1.ReadBytes((int)fs1.Length);


  //
  con.Open();
  SqlCommand cmd1 = new SqlCommand("insert into easypaisa (trid,selectopt,smobile,rmobile,snic,rnic,tamount,tcharges,totalcharges,date,descr,inv_no,Company,user_name,sprof,dataimg,image2) values ('" + textBox1.Text + "','" + comboBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "','" + dateTimePicker1.Value.ToString("MM-dd-yyyy") + "','" + textBox10.Text + "','" + textBox9.Text + "','" + comboBox2.Text + "','" + Get_User_label.Text + "','" + textBox13.Text + "',@dataimg,@image2)", con);
  cmd1.Parameters.Add(new SqlParameter("@dataimg", img));
  cmd1.Parameters.Add(new SqlParameter("@image2", img1));
  cmd1.ExecuteNonQuery();
  con.Close();

  MessageBox.Show("Data Saved successfully", "Important Message",
                   MessageBoxButtons.OK, MessageBoxIcon.Information);

1 Ответов

Рейтинг:
0

Wendelius

Прежде всего, вы никогда не должны связывать значения непосредственно с инструкцией SQL. Это оставляет вас открытыми для SQL-инъекций, проблем с конвертацией и так далее.

Что касается самой ошибки, попробуйте точно определить место, где возникает исключение. Используйте отладчик и посмотрите на значения, которые вы передаете методам. Например что делают imgloc и imgloc1 содержать.

Другое дело, что вы должны использовать using blocks и try..catch structures, чтобы убедиться, что вы правильно размещаете объекты и правильно обрабатываете ошибки. Для получения дополнительной информации взгляните на Правильное выполнение операций с базой данных[^]


Member 12861580

Извините, я не понимаю, что я могу сделать для этой ошибки

Wendelius

Чтобы получить дополнительную информацию о причине исключения поместите точку останова в строку

FileStream fs = новый FileStream(imgloc, FileMode.Открытия, Флагами Fileaccess.Читать);

Содержит ли imgloc правильное значение? Если это так, повторите то же самое с

FileStream fs1 = новый FileStream(imgloc1, FileMode.Открытия, Флагами Fileaccess.Читать);

Также исследуйте точную строку, которая вызывает исключение.

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

Когда это исправлено, сосредоточьтесь на использовании параметров для запроса и реализуйте блоки using и try..catch.