DOB之间 [英] DOB BETWEEN
本文介绍了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屋!
查看全文