如果找不到图像文件或不存在图像文件,如何设置默认图像? 我得到的错误是
因为名称为8813.jgp
的文件不存在。我想将其默认设置为1.jpg
。我如何检查它是否存在。
我使用此代码
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 :(得分:2)
您可以使用File.Exists()
命名空间中的System.IO
检查文件是否存在。
https://msdn.microsoft.com/en-us/library/system.io.file.exists(v=vs.110).aspx
if(File.Exists("filePath"))
{
// Load file.
}
else
{
// Load default file.
}
答案 1 :(得分:0)
实际上它非常微不足道!
mValues
答案 2 :(得分: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);
}
}
抱歉我的英文
答案 3 :(得分:0)
独立应用
如果您的应用程序是独立应用程序(仅需要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) ;