try
            {                             
                string strSql = "SELECT * FROM TY_VIEW_SO_MATERIAL WHERE DTM>='"+ this.dugStr.Text.ToString() +"' AND DTM<='"+ this.dugEnd.Text.ToString() + (this.chkHideDel.Checked ?"AND OLD=0 ": string.Empty) + "' ORDER BY SONO,BOMID,ITM,OLD,ITM2 DESC";                 RemoteCallReturnWithDataset rmtPrdt = ErpBasic.Cls_Common.GetDataFromDB(strSql);                                 
                 DataTable dtbPrdt = rmtPrdt.ExecuteReturnData.Tables[0];                 this.dgvPrdt.DataSource = dtbPrdt;
                 if (null != dtbPrdt)
                    {
                         this.txtInfo.Text = "查询完成,共" + dtbPrdt.Rows.Count + "条信息.";
                    }
            }
            catch
            {
                MessageBox.Show("查询出错,请检查你选择的日期!");
                return;
            }这个是我的SQL和程序代码.现在遇到的问题是 查询后点击
已删除行的话,查询不出结果了. ..  求解...我觉得是(this.chkHideDel.Checked ?"AND OLD=0 ": string.Empty)的问题...

解决方案 »

  1.   

    string strSql = "SELECT * FROM TY_VIEW_SO_MATERIAL WHERE DTM>='"+ this.dugStr.Text.ToString() +"' AND DTM<='"+ this.dugEnd.Text.ToString() + (this.chkHideDel.Checked ?"AND OLD=0 ": string.Empty) + "' ORDER BY SONO,BOMID,ITM,OLD,ITM2 DESC";
    楼主确认一下红色下划线的引号。是要用这个引号把“AND OLD=0”圈在引号里面吗?或许错在这个引号的位置上。
      

  2.   

    string strSql = "SELECT * FROM TY_VIEW_SO_MATERIAL WHERE DTM>='"+ this.dugStr.Text.ToString() +"' AND DTM<='"+ this.dugEnd.Text.ToString() + "'" + (this.chkHideDel.Checked ?" AND OLD=0 ": string.Empty) + " ORDER BY SONO,BOMID,ITM,OLD,ITM2 DESC";
    如果是引号的位置不对,可以试试上面这样写啊。