2011-05-02 65 views
4

问:DropDownList selectedvalue and tables

嗨,我有一个dropdownlist,我得到两个错误。

错误#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”,它说

“不能隐式转换类型的字符串 为bool”

错误#2:我希望使用通过查询得到的Doc_Path值。我不确定语法,因此当我尝试它时发生错误。

代码:

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

请帮助。

回答

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); 
+0

嘿,谢谢。第一个错误得到解决,但它没有采取“string [] dirs = Directory.GetDirectories(query);”。编译器期待GetDirectories的字符串类型参数。即使我做query.ToString()仍然不工作 – 2011-05-02 03:20:49

+0

其采取query.ToString()作为一个SQL查询,因为我不想这...我希望查询的结果传递。 – 2011-05-02 03:23:03

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值不是绝对路径,只存储相对路径。

相关问题