2016-09-28 179 views
0

當圖像文件未找到或不存在時,如何設置默認圖像? 我得到的錯誤是設置默認圖像路徑

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

,我不知道,'file.exists'的system.io。 chill〜 – chopperfield

+0

使用System.IO包含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) ;