C# 从Gridview检索文件名列
我有一个Gridview,它显示数据库中的文件名 我已经编写了从数据库中删除文件名条目的代码,但我还想从目录中删除它,那么如何从Gridview中检索文件名呢 我不想执行另一个select命令来检索文件名 代码:C# 从Gridview检索文件名列,c#,asp.net,database,gridview,C#,Asp.net,Database,Gridview,我有一个Gridview,它显示数据库中的文件名 我已经编写了从数据库中删除文件名条目的代码,但我还想从目录中删除它,那么如何从Gridview中检索文件名呢 我不想执行另一个select命令来检索文件名 代码: protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { int Fid = (int)GridView1.DataKeys[e.RowIndex].Value;
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int Fid = (int)GridView1.DataKeys[e.RowIndex].Value;
sdsFiles.DeleteCommand = "Delete from Files where Fid = @id";
sdsFiles.DeleteParameters.Clear();
sdsFiles.DeleteParameters.Add("id",Fid.ToString());
sdsFiles.Delete();
System.IO.Directory.Delete(Server.MapPath("~/Data/"));
}
谢谢。使用以下代码并执行步骤强>
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int Fid = (int)GridView1.DataKeys[e.RowIndex].Value;
sdsFiles.DeleteCommand = "Delete from Files where Fid = @id";
sdsFiles.DeleteParameters.Clear();
sdsFiles.DeleteParameters.Add("id",Fid.ToString());
sdsFiles.Delete();
string fileName = ((Label)GridView1.Rows[e.RowIndex].FindControl("Label1")).Text;
System.IO.File.Delete(Server.MapPath("") + "\\" + fileName);
}
使用以下代码并执行以下步骤强>
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int Fid = (int)GridView1.DataKeys[e.RowIndex].Value;
sdsFiles.DeleteCommand = "Delete from Files where Fid = @id";
sdsFiles.DeleteParameters.Clear();
sdsFiles.DeleteParameters.Add("id",Fid.ToString());
sdsFiles.Delete();
string fileName = ((Label)GridView1.Rows[e.RowIndex].FindControl("Label1")).Text;
System.IO.File.Delete(Server.MapPath("") + "\\" + fileName);
}
出于性能方面的考虑,我不会过分使用此选项添加大量键,但您可以通过将GridView的DataKeys属性设置为“fid,filename”来设置GridView的DataKeys属性,以包括文件名列以及已设置的fid,然后在删除方法期间使用GridView1.DataKeys[e.RowIndex].Values方法按行检索数据键,其中按索引检索数据键,因此如果数据键为“FID,文件名”,FID将为GridView1.DataKeys[e.RowIndex]。值[0]和文件名将为GridView1.DataKeys[e.RowIndex].Values[1]。出于性能原因,我,使用此选项添加大量键不会太过火,但您可以通过将GridViews DataKeyNames属性设置为等于“fid,filename”,然后在删除方法期间使用GridView1.DataKeys[e.RowIndex]按行检索数据键,从而将GridView的DataKeys属性设置为包含文件名列以及已设置的fid.Values方法,其中按索引检索数据键,因此如果数据键为“FID,文件名”,FID将为GridView1。数据键[e.RowIndex]。值[0]和文件名将为GridView1。数据键[e.RowIndex]。值[1]。我通过以下方式直接获取字符串(文件名):
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridView1.SelectedIndex = e.RowIndex;
string fileName = GridView1.SelectedRow.Cells[1].Text;
System.IO.File.Delete(Server.MapPath("") + "\\" + fileName);
int Fid = (int)GridView1.DataKeys[e.RowIndex].Value;
sdsFiles.DeleteCommand = "Delete from Files where Fid = @id";
sdsFiles.DeleteParameters.Clear();
sdsFiles.DeleteParameters.Add("id",Fid.ToString());
sdsFiles.Delete();
GridView1.SelectedIndex = -1;
}
也许会更快,我不确定。我通过以下方式直接获取字符串(文件名):
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridView1.SelectedIndex = e.RowIndex;
string fileName = GridView1.SelectedRow.Cells[1].Text;
System.IO.File.Delete(Server.MapPath("") + "\\" + fileName);
int Fid = (int)GridView1.DataKeys[e.RowIndex].Value;
sdsFiles.DeleteCommand = "Delete from Files where Fid = @id";
sdsFiles.DeleteParameters.Clear();
sdsFiles.DeleteParameters.Add("id",Fid.ToString());
sdsFiles.Delete();
GridView1.SelectedIndex = -1;
}
也许会更快,我不确定