2016-09-28 6 views
0

Как установить образ по умолчанию, когда файл изображения не найден или не существует? ошибка я получил, былset default image path

enter image description here

, так как файл с именем 8813.jgp не существует. и я хочу установить его по умолчанию как 1.jpg. как я могу проверить, существует ли это или нет.

IAM с помощью этого кода

public void profilepicture() 
    { 
    DataTable dtprofile = new DataTable(); 
    DataSet dsprofile = new DataSet(); 
    string path; 
     SqlCommand command = new SqlCommand(); 
     SqlDataAdapter adapter = new SqlDataAdapter(); 
     try 
     { 
      dsprofile.Clear(); 
      dtprofile.Clear(); 
      command.Connection = myConnection; 
      command.CommandText = "//some query//'"; 

      myConnection.Open(); 
      adapter.SelectCommand = command; 
      adapter.Fill(dtprofile); 
      adapter.Fill(dsprofile); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("error" + ex); 
      myConnection.Close(); 
     } 

     path = dsprofile.Tables[0].Rows[0][0].ToString() + "\\" + number + ".jpg"; 
     pictureEdit2.Image = Image.FromFile(path); 

     myConnection.Close(); 
    } 
+0

https://msdn.microsoft.com/en-us/library/system.io.file .exists (v = vs.110) .aspx – Bharadwaj

ответ

0

Его весьма тривиальным на самом деле!

path = dsprofile.Tables[0].Rows[0][0].ToString() + "\\" + number + ".jpg"; 
if(File.Exists(path)){ 
    pictureEdit2.Image = Image.FromFile(path); 
} 
else 
{ 
    pictureEdit2.Image = Image.FromFile("NotFound.jpg"); 
} 
+0

ну, я не знаю, system.io 'file.exists'. chill ~ – chopperfield

+0

Включить пространство имен для System.IO using System.IO; он существует в сборке mscorlib.dll, который, я уверен, у вас уже есть! –

0

Я предлагаю вам создать отдельный метод, чтобы получить SQL таблицу, так что вы можете использовать его в любом случае вам нужно, и затем создать другой метод для профиля изображения, используя код, как показано ниже:

public DataTable GetSqlTable(string query) 
{ 
    using (SqlConnection dbConnection = new SqlConnection(@"Data Source={ServerName};Initial Catalog={DB_Name};UID={UserID}; Password={PWD}")) 
    { 
     dbConnection.Open(); 
     SqlDataAdapter da = new SqlDataAdapter(query, dbConnection); 
     da.SelectCommand.CommandTimeout = 600000; //optional 
     try 
     { 
      DataTable dt = new DataTable(); 
      da.Fill(dt); 
      da.Update(dt); 
      dbConnection.Close(); 
      return dt; 
     } 
     catch 
     { 
      dbConnection.Close(); 
      return null; 
     } 
    } 
} 

public void profilepicture() 
{ 
    DataTable dt = GetSqlTable("/* some query */"); 
    string number = "some value"; 
    string defaultImg = "defaultImgPath"; 
    if(dt.Rows.Count > 0) 
    { 
     string path = dt.Rows[0][0].ToString() + "\\" + number + ".jpg"; 
     pictureEdit2.Image = Image.FromFile(File.Exists(path) ? path : defaultImg); 
    } 
    else 
    { 
     pictureEdit2.Image = Image.FromFile(defaultImg); 
    } 
} 

Извините за мой английский

0

Отдельных приложений

Если ваше приложение является стан dalone (требуется только exe и никаких других файлов на жестком диске), вы можете добавить изображение по умолчанию в файл ресурсов и использовать его по мере необходимости. После стека переполнения ссылку объясняет, как получить доступ к фотографии, добавленные в файл ресурсов Load image from resources area of project in C#

pictureEdit2.Image = File.Exists(path) ? Image.FromFile(path) : Resources.myImage; 

Установленные приложения

Если ваше приложение не является самостоятельным приложением, вы можете использовать Environment.GetFolderPath метод или Application.StartupPath для хранения по умолчанию образ.

Чтобы избежать файл не найден исключение, возможно, придется использовать File.Exists в вашем коде что-то вроде ниже

string defaultImagePath = Application.StartupPath + "\\1.jpg"; 
pictureEdit2.Image = Image.FromFile(File.Exists(path) ? path : defaultImagePath) ;