DOB之间 [英] DOB BETWEEN

查看:80
本文介绍了DOB之间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我想搜索加入DOB的用户.请参见下面的代码.
我想选择所有用户在1990年1月1日至1990年1月1日之间的任务.
错误是:

Hi,

I want to Search User accroding to DOB. See below code.
I want to select all user whose dob between 01-01-1980 and 01--01-1990
ERROR IS:

Parameter ''@dob'' was supplied multiple times.



DAL:



DAL:

public DataSet FindCandidate1(int code, DateTime sta, DateTime end)
   {
     cmd = new SqlCommand("Sp_Recruit_Job", cls.connect());
     cmd.CommandType = CommandType.StoredProcedure;
     cmd.Parameters.Add(new SqlParameter("@JobCode", SqlDbType.Int)).Value = code;
     cmd.Parameters.Add(new SqlParameter("@dob", SqlDbType.DateTime)).Value = sta;
     cmd.Parameters.Add(new SqlParameter("@dob", SqlDbType.DateTime)).Value = end;
     cmd.Parameters.Add(new SqlParameter("@callval", SqlDbType.Int)).Value = 1;
     SqlDataAdapter da = new SqlDataAdapter(cmd);
     DataSet ds = new DataSet();
     da.Fill(ds);
     return ds;
   }



BAL:



BAL:

public DataSet FindCandidate1(int code, DateTime sta, DateTime end)
  {
    FetchDataDal FDB = new FetchDataDal();
    try
    {
      return FDB.FindCandidate1(code, sta, end);
    }
    catch
    {
      throw;
    }
    finally
    {
      FDB = null;
    }
  }


C#:


C#:

public void FindCandidate()
   {
     FetchDataBal FDB = new FetchDataBal();
     DataSet ds = new DataSet();
     ds = FDB.FindCandidate1(Convert.ToInt32(ddl_position.SelectedItem.Value), Convert.ToDateTime(txtFrom.Text), Convert.ToDateTime(txtBetween.Text));
     RadGrid2.DataSource = ds;
     RadGrid2.DataBind();
   }


   protected void btn_search_Click(object sender, EventArgs e)
   {
     FindCandidate();
   }


存储过程:


Stored Procedure:

if @callval=1
begin

select rp_tbl_personal_details.c_f_name + '''' +c_m_name + ''''+ c_l_name  as name,
rp_tbl_personal_details.dob,

rp_tbl_academic_details.prof_qual ,rp_tbl_academic_details.grad_qual,
rp_tbl_academic_details.prof_stream,rp_tbl_academic_details.prof_year,
rp_tbl_academic_details.grad_stream,rp_tbl_academic_details.grad_year,
rp_tbl_professional.ex_yyyy,

rp_tbl_family.assignment1,rp_tbl_family.assignment2,rp_tbl_family.assignment3,
rp_tbl_family.assignment4,rp_tbl_family.assignment5,

rp_tbl_professional.emp_gross,rp_tbl_CreateNewJob.JobCode,rp_tbl_CreateNewJob.Position,
rp_tbl_ApplyforJob.email,rp_tbl_ApplyforJob.TimeReq,rp_tbl_ApplyforJob.ExpSalary,
dtInterview =  case rp_tbl_ApplyforJob.dtInterview
when 1 then ''Any Day''
when 2 then ''Week Day''
when 3 then ''Weekends''
else ''Other''
end

from rp_tbl_CreateNewJob inner join rp_tbl_ApplyforJob
on rp_tbl_CreateNewJob.JobCode=rp_tbl_ApplyforJob.JobCode
inner join rp_tbl_personal_details on
rp_tbl_ApplyforJob.email=rp_tbl_personal_details.email
inner join rp_tbl_academic_details on
rp_tbl_personal_details.personal_id=rp_tbl_academic_details.personal_id
inner join rp_tbl_family on rp_tbl_academic_details.academic_id=rp_tbl_family.academic_id
inner join
rp_tbl_professional on
rp_tbl_family.family_id=rp_tbl_professional.family_id

where rp_tbl_CreateNewJob.JobCode = @JobCode and
rp_tbl_personal_details.dob BETWEEN @dob and @dob
endif @callval=10
begin

select rp_tbl_personal_details.c_f_name + '''' +c_m_name + ''''+ c_l_name  as name,
rp_tbl_personal_details.dob,

rp_tbl_academic_details.prof_qual ,rp_tbl_academic_details.grad_qual,
rp_tbl_academic_details.prof_stream,rp_tbl_academic_details.prof_year,
rp_tbl_academic_details.grad_stream,rp_tbl_academic_details.grad_year,
rp_tbl_professional.ex_yyyy,

rp_tbl_family.assignment1,rp_tbl_family.assignment2,rp_tbl_family.assignment3,
rp_tbl_family.assignment4,rp_tbl_family.assignment5,

rp_tbl_professional.emp_gross,rp_tbl_CreateNewJob.JobCode,rp_tbl_CreateNewJob.Position,
rp_tbl_ApplyforJob.email,rp_tbl_ApplyforJob.TimeReq,rp_tbl_ApplyforJob.ExpSalary,
dtInterview =  case rp_tbl_ApplyforJob.dtInterview
when 1 then ''Any Day''
when 2 then ''Week Day''
when 3 then ''Weekends''
else ''Other''
end

from rp_tbl_CreateNewJob inner join rp_tbl_ApplyforJob
on rp_tbl_CreateNewJob.JobCode=rp_tbl_ApplyforJob.JobCode
inner join rp_tbl_personal_details on
rp_tbl_ApplyforJob.email=rp_tbl_personal_details.email
inner join rp_tbl_academic_details on
rp_tbl_personal_details.personal_id=rp_tbl_academic_details.personal_id
inner join rp_tbl_family on rp_tbl_academic_details.academic_id=rp_tbl_family.academic_id
inner join
rp_tbl_professional on
rp_tbl_family.family_id=rp_tbl_professional.family_id

where rp_tbl_CreateNewJob.JobCode = @JobCode and
rp_tbl_personal_details.dob BETWEEN @dob and @dob
endif @callval=10
begin

select rp_tbl_personal_details.c_f_name + '''' +c_m_name + ''''+ c_l_name  as name,
rp_tbl_personal_details.dob,

rp_tbl_academic_details.prof_qual ,rp_tbl_academic_details.grad_qual,
rp_tbl_academic_details.prof_stream,rp_tbl_academic_details.prof_year,
rp_tbl_academic_details.grad_stream,rp_tbl_academic_details.grad_year,
rp_tbl_professional.ex_yyyy,

rp_tbl_family.assignment1,rp_tbl_family.assignment2,rp_tbl_family.assignment3,
rp_tbl_family.assignment4,rp_tbl_family.assignment5,

rp_tbl_professional.emp_gross,rp_tbl_CreateNewJob.JobCode,rp_tbl_CreateNewJob.Position,
rp_tbl_ApplyforJob.email,rp_tbl_ApplyforJob.TimeReq,rp_tbl_ApplyforJob.ExpSalary,
dtInterview =  case rp_tbl_ApplyforJob.dtInterview
when 1 then ''Any Day''
when 2 then ''Week Day''
when 3 then ''Weekends''
else ''Other''
end

from rp_tbl_CreateNewJob inner join rp_tbl_ApplyforJob
on rp_tbl_CreateNewJob.JobCode=rp_tbl_ApplyforJob.JobCode
inner join rp_tbl_personal_details on
rp_tbl_ApplyforJob.email=rp_tbl_personal_details.email
inner join rp_tbl_academic_details on
rp_tbl_personal_details.personal_id=rp_tbl_academic_details.personal_id
inner join rp_tbl_family on rp_tbl_academic_details.academic_id=rp_tbl_family.academic_id
inner join
rp_tbl_professional on
rp_tbl_family.family_id=rp_tbl_professional.family_id


where rp_tbl_CreateNewJob.JobCode = @JobCode and
rp_tbl_personal_details.dob BETWEEN @dob and @dob
end


请帮助我.


Please help me.

推荐答案



将您的日期参数更改为其他变量名称.喜欢
Hi

Change your date parameter to different variable name. Like
cmd.Parameters.Add(new SqlParameter("@dob", SqlDbType.DateTime)).Value = sta;
cmd.Parameters.Add(new SqlParameter("@dob", SqlDbType.DateTime)).Value = end;




在这里,您的开始和结束数据都提供@dob.将其更改为不同的名称,例如@Sdob和@Edob.还要将其更改为程序.



umesh




Here in your both start and end data @dob is supply. Change it to different name like @Sdob and @Edob. Also do that changes into procedure also.



umesh


谢谢.现在我想如果用户不会填充任何Dob,那么它应该搜索所有数据.我该怎么办?我可以设置一个最小和最大日期.
喜欢:
Thanks. Now I want if user will not fill any dob then it should search all the data. How Can I do this.Can i set a min and max date.
Like:
DateTime SDob=1970/01/01;
DateTime EDob=1990/01/01;

if(txtSDob.Text !="")
{
SDob=Convert.ToDateTime(txtSDob.Text)
}

if(txtEDob.Text !="")
{
EDob=Convert.ToDateTime(txtEDob.Text)
}


然后在存储过程中传递或更改
救救我.


and then pass or change in stored procedure
Help me.


这篇关于DOB之间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆