FROM 子句语法异常。求大神指导

FROM 子句语法错误。求大神指导!
FROM 子句语法错误。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.OleDb.OleDbException: FROM 子句语法错误。

源错误: 


行 56:        OleDbDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;
行 57:        DataSet bsDataSet=new DataSet();
行 58:        OleDbDA.Fill(bsDataSet, "T_Medicines");   //填充DataSet
行 59:        DataGrid_Medicines.DataSource=bsDataSet;  //绑定数据
行 60:        DataGrid_Medicines.DataBind();

源文件: c:\Visual Studio 2010\WebSites\MedicineShop\MedicineNew.aspx    行: 58 

错误代码:
private void Grid_BindData()
    {
       //实现DataGrid的数据绑定
       string sMClassID;    //读入用户所选类型
       sMClassID=DDList_MedicineClass.SelectedValue;
       OleDbConnection sqlCnn = new OleDbConnection(strCnn);
       string sSql = "select a.*,b.Fac_Name from T_Medicines a,T_Factoty b";
       sSql +="where a.Fac_ID=b.Fac_ID and a.MClass_ID='"+ sMClassID +"'";
       sSql +="order by a.Medicine_AddDate desc";   //生成SQL语句
       OleDbDataAdapter OleDbDA = new OleDbDataAdapter(sSql, sqlCnn);
       OleDbDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;
       DataSet bsDataSet=new DataSet();
       OleDbDA.Fill(bsDataSet, "T_Medicines");   //填充DataSet
       DataGrid_Medicines.DataSource=bsDataSet;  //绑定数据
       DataGrid_Medicines.DataBind();
       sqlCnn.Close();
       if(bsDataSet.Tables["T_Medicines"].Rows.Count<1)   //没有任何数据时,提示用户
           Label_Msg.Text = "对不起,当前类别下没有药品。";
    }
------解决方案--------------------
where前加个空格
------解决方案--------------------
引用:
where前加个空格


正解
------解决方案--------------------
order前也要空格,你看一下拼接语句的完整输出是什么,就明白问题出哪里了