2016-09-28 8 views
0

После того, как данные сохранены, а какие они прошли через строку, он показывает ошибку. Данный формат пути не поддерживается, я сделал что-то неправильно или поместил коды конвертера url в неправильное место?Ошибка System.NotSupportedException: формат данного пути не поддерживается

try 
{ 
    connect.Open(); 
    OleDbCommand command = new OleDbCommand(); 
    command.Connection = connect; 
    command.CommandText = string.Format("insert into RegisterItem([Name], [Url],[Description], [Price]) values('{0}','{1}','{2}','{3}')", 
             ItemName.Text, 
             ItemUrl.Text, 
             ItemDescription.Text, 
             ItemPrice.Text); 

    command.ExecuteNonQuery(); 
    MessageBox.Show("Data Saved"); 

    txtID1.Text = txtUsername.Text; 
    txtName1.Text = ItemName.Text; 
    txtDescription1.Text = ItemDescription.Text; 
    txtPrice1.Text = ItemPrice.Text; 
    ItemName.Text = ""; 
    ItemDescription.Text = ""; 
    ItemPrice.Text = ""; 
    string str = ItemUrl.Text; 
    pictureBox1.ImageLocation = str; 
    string str1 = textBox1.Text; 
    Image img = Image.FromFile(str); 
    pictureBox1.Image = img; 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Error " + ex); 
} 
finally 
{ 
    if (Connect != null) { connect.Close(); } 
} 
+1

Что находится в 'ItemUrl'? Мы не видим ваш компьютер :) – Pikoh

+0

Это текстовое поле, которое вы набираете url, и картинка будет загружена на pictureBox1 –

+1

Но что такое значение ItemUrl.Text, которое вызывает исключение? – slawekwin

ответ

1

Это

 Image img = Image.FromFile(str); 

, что вызывает проблему. Изображение не может быть загружено из Url, но должно быть путь к файлу.

Для того, чтобы загрузить изображение из URL вы должны

 WebRequest wr = WebRequest.Create("https://pixabay.com/static/uploads/photo/2015/10/01/21/39/background-image-967820_960_720.jpg"); 
     Image img; 
     using (var rs = wr.GetResponse().GetResponseStream()) 
     { 
      img = Image.FromStream(rs); 
     } 

На самом деле, вы можете полностью опустить

Image img = Image.FromFile(str); 
pictureBox1.Image = img; 

Эта часть кода именно делает всю необходимую работу

pictureBox1.ImageLocation = str; 

Image.FromFile загружается только из файла диска, но установка ImageLocation может загружаться с URL-адреса и в то же время d сырье и изображение на холст

+0

Действительно? Причина до того, как я изменил другие коды, это работает отлично, он загружается при прямом указании ссылки –

+0

Есть ли способ для этого метода работать? Загружается по прямой ссылке после преобразования с таких сайтов, как postimage.org –

+0

Есть ли способ загрузить изображение сразу после того, как ссылка на файл, например C: \ Users \ Teronkee \ Pictures \ 98b288f6-e204-40fe-a4f3-cb83a21f4be3.jpg, введена в ? can not, похоже, архивирует его. Метод, который я использовал только для поддержки с функцией просмотра. –

Смежные вопросы