在SQL查询语句的条件中如何使用变量?请问这句SQL哪里有错啊?
beginTime 和 endTime 是要传入的变量 是DateTime类型的.我试了用& 号,和+ 号,都说这个SQL有错.
请大家帮忙啊谢谢  string cmdText = "select *  from table where  Time between '"& beginTime &" ' and '"& endTime& &"'";  string cmdText = "select *  from table where  Time between '"+ beginTime +" ' and '"+ endTime& +"'"

解决方案 »

  1.   

    string cmdText = "select *  from table where  Time between '"+ beginTime +" ' and '"+ endTime +"'"
      

  2.   

    用SqlParameter更好,你的方法还需要自己拼凑
    给一个例子    private const string SQL_INSERT_STEP = "Insert into ArchProcessStep(ArchID,StepLevel,DeptCode,JobCode,StepTimes,StepTimesUOM,StepOP) Values(@ArchID,@StepLevel,@DeptCode,@JobCode,@StepTimes,@StepTimesUOM,@StepOP)";
            
    SqlParameter[] InsertParms = new SqlParameter[]
                {
                    new SqlParameter(PARM_StepLevel,SqlDbType.Int,4),
                    new SqlParameter(PARM_DeptCode,SqlDbType.NVarChar,20),
                    new SqlParameter(PARM_JobCode,SqlDbType.NVarChar,20),
                    new SqlParameter(PARM_StepTimes,SqlDbType.Int,4),
                    new SqlParameter(PARM_StepTimesUOM,SqlDbType.NVarChar,10),
                    new SqlParameter(PARM_StepOP,SqlDbType.NVarChar,10),
                    new SqlParameter(PARM_ArchID,SqlDbType.Int,4),
                 
                };            InsertParms[0].Value = step.StepLevel;
                InsertParms[1].Value = step.DeptCode;
                InsertParms[2].Value = step.JobCode;
                InsertParms[3].Value = step.StepTimes;
                InsertParms[4].Value = step.TimesUOM;
                InsertParms[5].Value = step.StepOP;
                InsertParms[6].Value = step.ArchID;
      

  3.   

    declare @beginTime DateTime
    declare @endTime DateTime
    string cmdText = "select *  from table where  Time between '"+ @beginTime +" ' and '"+ @endTime +"'"
      

  4.   

    你这个SQL有错不是因为表达不对,是你的类型不匹配吧,你的Time肯定是DateTime类型的吧,
    你的beginTime 和 endTime 获取的时候肯定是字符型的,怎么会是DateTime类型的?
    所以你要转化一下 string cmdText = "select *  from table where  Convert(varchar(10),Time,121) between '"+ beginTime +" ' and '"+ endTime +"'";
    将Time转化成字符型的
      

  5.   


    谢谢 ustbwuyi()指教,但是我这么转化成字符型的怎么不对啊?string beginTimeSring = beginTime.ToString;
      

  6.   

    谢谢 ustbwuyi()指教,成功了
      

  7.   

    ustbwuyi()能不能帮我看看这个问题?
    http://community.csdn.net/Expert/topic/5050/5050587.xml?temp=.3536493