DropDownList selectedvalue和表

时间:2011-05-02 02:39:51

标签: asp.net linq file drop-down-menu

问:

嗨,我有一个下拉列表,我收到两个错误。

错误#1: 我的要求是从下拉列表中选择会议名称,将其保存为字符串并稍后使用该字符串。我想从数据库表中获取字段值(它给出了存储文件的路径)。

代码:

string selected = DropDownList1.SelectedValue.ToString();

var query = from meet in db.Meets
            where meet.Summary = selected
            select meet.Doc_Path;

我在“where meet.Summary=selected”收到错误,并说

  

“无法隐式转换类型字符串   布尔“

错误#2: 我希望使用通过查询获得的Doc_Path值。我不确定语法,因此在我尝试时出错。

代码:

string[] dirs = Directory.GetDirectories(query);

请帮忙。

2 个答案:

答案 0 :(得分:2)

错误#1 - 我认为你需要==而不只是=

string selected = DropDownList1.SelectedValue.ToString();

var query = from meet in db.Meets
            where meet.Summary == selected
            select meet.Doc_Path;

错误#2 - 您可能需要用户Server.MapPath

String FilePath;
FilePath = Server.MapPath(query);

或者,将它们组合起来

string selected = DropDownList1.SelectedValue.ToString();

var query = from meet in db.Meets
            where meet.Summary == selected
            select Server.MapPath(meet.Doc_Path);

string[] dirs = Directory.GetDirectories(query);

答案 1 :(得分:0)

错误#1:

如前所述,在进行比较时,您应该使用==代替=

错误#2:

为什么使用Directory.GetDirectories(query);

上一个方法用于获取指定目录中子目录的名称(包括其路径)。

here

我认为您不需要这种方法,只需使用:

string selected = DropDownList1.SelectedValue.ToString();

var query = from meet in db.Meets
            where meet.Summary == selected
            select meet.Doc_Path;

string dirPath = System.Web.HttpContext.Current.Server.MapPath("~") + query.ToString();

确保meet.Doc_Path值不是绝对路径,仅存储相对路径。