无法访问文件路径,因为文件夹名称包含空格和特殊字符

时间:2010-12-18 10:30:21

标签: c# .net asp.net odbc dbase

我正在访问处于硬编码路径的DBF数据库文件,但文件夹名称包含ex-BSTR-VSD,BSTR~VSD的特殊字符,我无法重命名。

所以当我正在制作odbc连接时说odb然后把查询放进去 odb.commandText =从PATH中选择*(包含具有特殊字符的文件夹名称的硬编码路径)然后它给出错误

示例:

System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand(); oCmd.CommandText =“SELECT * FROM”+路径名+“其中DATE_Y> = 110且DATE_M> =”+ From_Month +“和DATE_D> =”+ From_Day +“和DATE_Y< = 110和DATE_M< =” + To_Month +“和DATE_D< =”+ To_Day +“”;

dt_Dbf.Load(oCmd.ExecuteReader());

和例外:: 错误[42000] [Microsoft] [ODBC dBase驱动程序] FROM子句中的语法错误。

2 个答案:

答案 0 :(得分:0)

环绕支架

SELECT * 
  FROM ["+ Pathname + "]
 where DATE_Y >=110 
   and DATE_M >= " + From_Month + " 
   and DATE_D>=" + From_Day + " 
   and DATE_Y <=110 
   and DATE_M <= " + To_Month + "
   and DATE_D<=" + To_Day + " "

你也可以使用像这样的东西来清理它     在StartDate和EndDate之间

答案 1 :(得分:0)

为什么不使用 Parametrized Query ?您可以使用OdbcParameter class

  

MSDN:它匹配字符串的整个长度,包括任何填充尾随空格。

        System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand();
        oCmd.CommandText = "SELECT * FROM  @pathname where DATE_Y >=110 and DATE_M >= @from_Month and DATE_D>= @from_Day and DATE_Y <=110 and DATE_M <= @to_Month and DATE_D<= @to_Day";
        oCmd.Parameters.Add(new OdbcParameter("@pathname", Pathname));
        oCmd.Parameters.Add(new OdbcParameter("@from_Month", From_Month));
        oCmd.Parameters.Add(new OdbcParameter("@to_Month", To_Month));
        oCmd.Parameters.Add(new OdbcParameter("@from_Day", From_Day));
        oCmd.Parameters.Add(new OdbcParameter("@to_Day", To_Day));