源码信息

最新源码评论

  • 评论者:samleon
    samleon(用户) 发表于:2008-06-23 16:31:00

    看程序用 存储过程 返回一个 SqlDataReader<br/>但我测试了下 好像这个 SqlDataReader 是空的<br/>并没有被真正返回<br/>存储过程应该没问题的,直接在SQL里查询能正常列出数据<br/><img src="http://www.qicol.com/test/1.jpg" border="0" onload="thumbImg(this)" /><br/><br/>以下为相关代码:<div class="blockcode"><div id="code_-1"><ol><li>/*以下为相关存储过程*/<br/></li> <li> <br/></li> <li>CREATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PROCEDURE sp_GetAllStaff<br/></li> <li> @StaffType bit = 0<br/></li> <li>/*<br/></li> <li>====================================================<br/></li> <li>功能: 得到所有的人员<br/></li> <li>参数:<br/></li> <li> @StaffType bit&nbsp;&nbsp; : 员工类型<br/></li> <li> <br/></li> <li>====================================================<br/></li> <li>*/<br/></li> <li>AS<br/></li> <li>--所有在职的<br/></li> <li>IF @StaffType=0<br/></li> <li> SELECT A.*,<br/></li> <li>&nbsp;&nbsp;(CASE <br/></li> <li>&nbsp;&nbsp;WHEN a.birthday is NULL then '-'<br/></li> <li>&nbsp;&nbsp;WHEN datediff(dd,a.birthday,'1900-01-01')=0 then '-'<br/></li> <li>&nbsp;&nbsp;ELSE<br/></li> <li>&nbsp;&nbsp;convert(varchar,datediff(yy,a.birthday,getdate()))<br/></li> <li>&nbsp;&nbsp;END<br/></li> <li>&nbsp;&nbsp;) AS Age,<br/></li> <li>&nbsp;&nbsp;(CASE sex WHEN 1 then '男' ELSE '女' END) AS SexName,Convert(varchar(10),A.RegistedDate,120) AS RQ,(SELECT Position_name FROM uds_Position WHERE Position_id = b.Position_id) AS Position_Name<br/></li> <li>&nbsp;&nbsp;FROM uds_staff A,uds_staff_in_position b<br/></li> <li>&nbsp;&nbsp;WHERE Dimission =0 and a.staff_id = b.staff_id<br/></li> <li>&nbsp;&nbsp;ORDER BY A.RegistedDate DESC<br/></li> <li>--所有不在职的<br/></li> <li>ELSE<br/></li> <li> SELECT A.*,<br/></li> <li>&nbsp;&nbsp;(CASE <br/></li> <li>&nbsp;&nbsp;WHEN a.birthday is NULL then '-'<br/></li> <li>&nbsp;&nbsp;WHEN datediff(dd,a.birthday,'1900-01-01')=0 then '-'<br/></li> <li>&nbsp;&nbsp;ELSE<br/></li> <li>&nbsp;&nbsp;convert(varchar,datediff(yy,a.birthday,getdate()))<br/></li> <li>&nbsp;&nbsp;END<br/></li> <li>&nbsp;&nbsp;) AS Age,<br/></li> <li>&nbsp;&nbsp;(CASE sex WHEN 1 then '男' ELSE '女' END) AS SexName,Convert(varchar(10),A.RegistedDate,120) AS RQ,(SELECT Position_name FROM uds_Position WHERE Position_id = b.Position_id) AS Position_Name<br/></li> <li>&nbsp;&nbsp;FROM uds_staff A,uds_staff_in_position b<br/></li> <li>&nbsp;&nbsp;WHERE Dimission =1 and a.staff_id = b.staff_id<br/></li> <li>&nbsp;&nbsp;ORDER BY A.RegistedDate DESC<br/></li> <li><br/></li> <li>GO<br/></li> <li>/*以上为相关存储过程*/<br/></li> <li> <br/></li> <li>/*以下为相关程序代码*/<br/></li> <li>public SqlDataReader GetAllStaffs()<br/></li> <li>&nbsp;&nbsp;{<br/></li> <li>&nbsp;&nbsp; SqlDataReader dataReader = null;<br/></li> <li>&nbsp;&nbsp; Database data = new Database();<br/></li> <li>&nbsp;&nbsp; try <br/></li> <li>&nbsp;&nbsp; {<br/></li> <li>&nbsp;&nbsp;&nbsp;&nbsp;// run the stored procedure<br/></li> <li>&nbsp;&nbsp;&nbsp;&nbsp;data.RunProc(&quot;sp_GetAllStaff&quot;,out dataReader);<br/></li> <li>&nbsp;&nbsp;&nbsp;&nbsp;return dataReader;<br/></li> <li>&nbsp;&nbsp; }<br/></li> <li>&nbsp;&nbsp; catch (Exception ex) <br/></li> <li>&nbsp;&nbsp; {<br/></li> <li>&nbsp;&nbsp;&nbsp;&nbsp;Error.Log(ex.ToString());<br/></li> <li>&nbsp;&nbsp;&nbsp;&nbsp;throw new Exception(&quot;人员信息读取出错!&quot;,ex);<br/></li> <li>&nbsp;&nbsp; }<br/></li> <li>&nbsp;&nbsp;}<br/></li> <li>/*以上为相关程序代码*/<br/></li> <li> <br/></li> <li>/*以下为Database相关代码*/<br/></li> <li>/// &lt;summary&gt;<br/></li> <li>&nbsp;&nbsp;/// 执行存储过程<br/></li> <li>&nbsp;&nbsp;/// &lt;/summary&gt;<br/></li> <li>&nbsp;&nbsp;/// &lt;param name=&quot;procName&quot;&gt;存储过程的名称&lt;/param&gt;<br/></li> <li>&nbsp;&nbsp;/// &lt;param name=&quot;dataReader&quot;&gt;返回存储过程返回值&lt;/param&gt;<br/></li> <li>&nbsp;&nbsp;public void RunProc(string procName, out SqlDataReader dataReader) {<br/></li> <li>&nbsp;&nbsp; SqlCommand cmd = CreateCommand(procName, null);<br/></li> <li>&nbsp;&nbsp; dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);<br/></li> <li>&nbsp;&nbsp;}<br/></li> <li>/*以上为Database相关代码*/<br/></li> </ol></div><em onclick="copycode($('code_-1'));">复制代码</em></div>还请各位大侠帮忙看看是什么问题!谢谢了!!

    1 个回复
    • 回复者:mycsdn
      mycsdn(用户)回复于:2008-06-24 07:37:00

      try<br/>{}<br/>catch一下阿