存储过程如下:alter proc SM_searchAccounts
@cjrq varchar(50)=null,
@zhxx varchar(20)=null,
@yhxm varchar(10)=null,
@xsid varchar(10)=null,
@whlsid varchar(10)=null,
@tplsid varchar(10)=null,
@ksrq varchar(50)=null,
@jsrq varchar(50)=null,
@cjzt varchar(10)=null,
@zb varchar(10)=null
as
select a.[id],e.cplx as cplx,a.cjrq,a.zhxx,a.yhxm,a.yhdh,a.yhsjhm,a.yhyb,a.yhdz,b.ygxm as xsry,c.ygxm as whry,d.ygxm as tpry,a.other,b.zb as zb from SM_cjdb as a inner join SM_employment_info as b on a.xsid=b.ygid inner join SM_employment_info as c on a.whlsid=c.ygid inner join SM_employment_info as d on a.tplsid=d.ygid inner join SM_cplxb as e on a.cpid=e.cplxid
where a.tkfs is null and scbz=0
and(@cjrq is null or a.cjrq>=@cjrq)
and(@cjzt is null or a.cjzt=@cjzt)
and(@ksrq is null or a.cjrq>=@ksrq)
and(@jsrq is null or a.cjrq<=@jsrq)
and(@zhxx is null or a.zhxx like+'%'+@zhxx+'%')
and(@xsid is null or b.ygxm like+'%'+@xsid+'%')
and(@whlsid is null or c.ygxm like+'%'+@whlsid+'%')
and(@tplsid is null or d.ygxm like+'%'+@tplsid+'%')
and(@zb is null or b.zb=@zb)order by a.cjrq descGO下面是执行的语句,是可以查到的
exec SM_searchAccounts
exec SM_searchAccounts '2007-10-15',null,null,null,null,null,null,null,'0',null
exec SM_searchAccounts null,'021',null,null,null,null,null,null,'0',null但我在页面上这样写就不对了,语句都对的,但就是得不到任何结果,一直是0数据
@cjrq varchar(50)=null,
@zhxx varchar(20)=null,
@yhxm varchar(10)=null,
@xsid varchar(10)=null,
@whlsid varchar(10)=null,
@tplsid varchar(10)=null,
@ksrq varchar(50)=null,
@jsrq varchar(50)=null,
@cjzt varchar(10)=null,
@zb varchar(10)=null
as
select a.[id],e.cplx as cplx,a.cjrq,a.zhxx,a.yhxm,a.yhdh,a.yhsjhm,a.yhyb,a.yhdz,b.ygxm as xsry,c.ygxm as whry,d.ygxm as tpry,a.other,b.zb as zb from SM_cjdb as a inner join SM_employment_info as b on a.xsid=b.ygid inner join SM_employment_info as c on a.whlsid=c.ygid inner join SM_employment_info as d on a.tplsid=d.ygid inner join SM_cplxb as e on a.cpid=e.cplxid
where a.tkfs is null and scbz=0
and(@cjrq is null or a.cjrq>=@cjrq)
and(@cjzt is null or a.cjzt=@cjzt)
and(@ksrq is null or a.cjrq>=@ksrq)
and(@jsrq is null or a.cjrq<=@jsrq)
and(@zhxx is null or a.zhxx like+'%'+@zhxx+'%')
and(@xsid is null or b.ygxm like+'%'+@xsid+'%')
and(@whlsid is null or c.ygxm like+'%'+@whlsid+'%')
and(@tplsid is null or d.ygxm like+'%'+@tplsid+'%')
and(@zb is null or b.zb=@zb)order by a.cjrq descGO下面是执行的语句,是可以查到的
exec SM_searchAccounts
exec SM_searchAccounts '2007-10-15',null,null,null,null,null,null,null,'0',null
exec SM_searchAccounts null,'021',null,null,null,null,null,null,'0',null但我在页面上这样写就不对了,语句都对的,但就是得不到任何结果,一直是0数据
解决方案 »
- 关于变量赋值问题
- 在Global.asax中用timer 定时执行操作
- jQuery来做验证码的实时认证
- 如何在初始化页面的时候选中TREEVIEW的某个节点
- 请教信息保存时的提示问题
- 我用存储过程做登陆.不知道如何继续了...
- 找不到文件或程序集名称“System.Diagnostics”,或找不到它的一个依赖项。
- 送分先,来者有份,顺便回答一下小弟的菜菜问题 :-)
- DataGrid/DataList编辑模式嵌套组件问题,虚心求教?
- 在ASP.NET中怎么建立全局过程和函数啊
- If ((ds.Tables.Count = 1) and (ds.Tables[0].rows.count = 0)) Then 为什么报错
- 服务器控件的奇怪问题,急
-----------
还有就是字段类型的原因比较多吧!
(猜测)
{
SqlConnection sqlConn = new SqlConnection(conn);
sqlConn.Open();
//指明Sql命令的操作类型是使用存储过程
SqlCommand cmd = sqlConn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; //指定执行存储过程操作
cmd.CommandText = "SM_searchAccounts"; //存储过程名称 SqlParameter parCjrq= new SqlParameter("@cjrq", DBNull.Value);
parCjrq.Value =cjrq;
cmd.Parameters.Add(parCjrq); SqlParameter parZhxx= new SqlParameter("@zhxx", DBNull.Value);
parZhxx.Value =zhxx;
cmd.Parameters.Add(parZhxx); SqlParameter parYhxm= new SqlParameter("@yhxm", DBNull.Value);
parYhxm.Value =yhxm;
cmd.Parameters.Add(parYhxm); SqlParameter parXsid= new SqlParameter("@xsid", DBNull.Value);
parXsid.Value =xsid;
cmd.Parameters.Add(parXsid); SqlParameter parWhlsid= new SqlParameter("@whlsid", DBNull.Value);
parWhlsid.Value =whlsid;
cmd.Parameters.Add(parWhlsid); SqlParameter parTplsid= new SqlParameter("@tplsid", DBNull.Value);
parTplsid.Value =tplsid;
cmd.Parameters.Add(parTplsid); SqlParameter parKsrq= new SqlParameter("@ksrq", DBNull.Value);
parKsrq.Value =ksrq;
cmd.Parameters.Add(parKsrq); SqlParameter parJsrq= new SqlParameter("@jsrq", DBNull.Value);
parJsrq.Value =jsrq;
cmd.Parameters.Add(parJsrq); SqlParameter parCjzt= new SqlParameter("@cjzt", DBNull.Value);
parCjzt.Value =cjzt;
cmd.Parameters.Add(parCjzt); SqlParameter parZb= new SqlParameter("@zb", DBNull.Value);
parZb.Value =zb;
cmd.Parameters.Add(parZb);
DataSet ds=new DataSet();
SqlDataAdapter adapter=new SqlDataAdapter(cmd);
adapter.Fill(ds);
sqlConn.Close();
return ds;
}
这样写也是得不到结果
{
SqlConnection sqlConn = new SqlConnection(conn);
sqlConn.Open();
//指明Sql命令的操作类型是使用存储过程
SqlCommand cmd = sqlConn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; //指定执行存储过程操作
cmd.CommandText = "SM_searchAccounts"; //存储过程名称 if(cjrp!=null&&cjrp.Trim()!="")
{
cmd.Parameters.Add("@cjrq", SqlDbType.VarChar, 50);//参数名,类型,长度
cmd.Parameters["@cjrq"].Value = cjrp;
}//其他的参数
//其他的参数
//其他的参数
DataSet ds=new DataSet();
SqlDataAdapter adapter=new SqlDataAdapter(cmd);
adapter.Fill(ds);
sqlConn.Close();
return ds;
}
仿照下面这样改试试
if(cjrp!=null&&cjrp.Trim()!="")
{
cmd.Parameters.Add("@cjrq", cjrp);
}
else
{
cmd.Parameters.Add("@cjrq", DBNull.Value);
}