我正在尝试按行ID读取表格行ID并更新某个单元格
如果
行ID为123并获取行ID(123),在文件夹中搜索来自许多图像的图像,该图像的ID以文本EX命名 - Name_123_AA.JPG
并获取完整图像名称并更新在当前行ID中命名单元格(123)。
答案 0 :(得分:0)
您可以这样做,首先从数据库获取您的ID而不是
DirectoryInfo dirinfo = new DirectoryInfo(Server.MapPath("~/Your Folder Name/"));
List<string> files = new List<string>();
foreach (FileInfo finfo in dirinfo.GetFiles())
{
files.Add(finfo.FullName);
}
//Check with ID
if (files.Count > 0)
{
foreach (var item in files)
{
if (item.Contains(yourId from database))
{
//just update this FileName(URL) in database
}
}
}
答案 1 :(得分:0)
如果您正在寻找特定的文件名,您只需在目录中检查它是否存在:
int rowID = 123;
string fileName = "Text Ex - Name_" + rowID.ToString() + "_AA.jpg";
if (System.IO.File.Exists("YourDirectory\\" + fileName))
{
using (var connection = new SqlConnection(yourConnectionString))
using (var command = new SqlCommand("UPDATE YourTable SET FilePath = @FilePath WHERE RowID = @RowID", connection))
{
command.Parameters.AddWithValue("@FilePath", fileName);
command.Parameters.AddWithValue("@RowID", rowID);
command.ExecuteNonQuery();
}
}
如果您需要进行搜索,Directory.GetFiles()方法允许使用搜索模式,因此您可能会遇到以下情况:
string searchPattern = "*" + rowID.ToString() + "*"; // adapt as required
string[] files = Directory.GetFiles("YourDirectory", searchPattern);
if (files.length > 0)
{
using (var connection = new SqlConnection(yourConnectionString))
using (var command = new SqlCommand("UPDATE YourTable SET FilePath = @FilePath WHERE RowID = @RowID", connection))
{
command.Parameters.AddWithValue("@FilePath", Path.GetFileName(Getfiles[0]));
command.Parameters.AddWithValue("@RowID", rowID);
command.ExecuteNonQuery();
}
}