DataTable的返回值用null好吗?怎样的效率比较高

bodan 2006-05-13 09:32:06
public static DataTable TestDT()
{
try
{
conn.Open();
comm.Connection=conn;
comm.CommandType=CommandType.StoredProcedure;
comm.CommandText="test";
comm.Parameters.Clear();
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=comm;
DataTable dt=new DataTable();
da.Fill(dt);
return dt;
}
catch(Exception ex)
{
DataTable dt=new DataTable();
return dt;
}
finally
{
conn.Close();
}

在catch中,我直接返回一个null好,还是像上面这样专门做一个空的DataTable来返回?还有,平时我们写的一些类,作为对象返回的时候,专门做一些处理好,还是直接返回一个null,因为我不知道null的效率是不是很低?
...全文
160 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bodan 2006-05-13
  • 打赏
  • 举报
回复
那么我再调用这个方法的时候,判断的时候也就是直接使用

if (dt==null)

来代替原来的
if (dt.Rows.Count==0)

这样子,在有数据和没有数据的情况下都能保全,是吗?可以这么做吗?这样做效率高不高?每次都对比是否为null会不会很耗资源
zhqs1000 2006-05-13
  • 打赏
  • 举报
回复
返回null
Ivony 2006-05-13
  • 打赏
  • 举报
回复
显然判断一个对象是不是null要比调用这个对象的方法(Count的get方法)要快很多。
winner2050 2006-05-13
  • 打赏
  • 举报
回复
检查是否null比COUNT=0更废时间,它要有超时停止判断
kssys 2006-05-13
  • 打赏
  • 举报
回复
晕,和null对比怎么会耗资源,楼主放心使用。

效率体在整体设计更重要。
bodan 2006-05-13
  • 打赏
  • 举报
回复
DB类:数据库访问类 属性: ConnString——连接字符串(如:server=.;uid=sa;pwd=;database=ufdata_001_2010) CMDstring——未使用 oleConnString——连接ACCESS数据库的字符串 方法: OpenConn——打开数据库(无参数) oleOpenConn——打开ACCESS数据库 NoreturnCmdPara(Byval Str_cmdpara as string) 传递Sql命令为参数,无返回值 Sub PROnoreturn(ByVal Str_proName As String, Optional ByVal Str_para1 As String = "", Optional ByVal Str_para2 As String = "", Optional ByVal Str_para3 As String = "", Optional ByVal Str_para4 As String = "", Optional ByVal Str_para5 As String = "", Optional ByVal Str_para6 As String = "") 执行存储过程Str_proName,无返回值 函数: Function ReturnDatablePara(ByVal Str_cmdpara As String) as DataTable 传递Sql命令为参数,返回Datatable Function ReturnOneValuePara(ByVal Str_cmdpara As String) As Object 传递Sql命令为参数,返回单一值 Function ReturnDataReaderPara(ByVal Str_cmdpara As String) As SQlClient.SqlDataReader 传递Sql命令为参数,返回DATAREADER Function ReturnXMLPara(ByVal Str_cmdpara As String) As Xml.XmlReader 传递Sql命令为参数,返回XML Function PROReturnDataReader(ByVal Str_proName As String, Optional ByVal Date_Begin As Date = #1/1/1900#, Optional ByVal Date_End As Date = #1/1/1900#, Optional ByVal Str_SubcompanyCid As String = "", Optional ByVal Str_Code As String = "", Optional ByVal Str_CompanyCid As String = "", Optional ByVal Str_ItemCid As String = "") As SqlClient.SqlDataReader 执行存储过程Str_proName,返回DATAREADER Function PROReturnDataTable(ByVal Str_proName As String, Optional ByVal Date_Begin As Date = #1/1/1900#, Optional ByVal Date_End As Date = #1/1/1900#, Optional ByVal Str_SubcompanyCid As String = "", Optional ByVal Str_Code As String = "", Optional ByVal Str_CompanyCid As String = "", Optional ByVal Str_ItemCid As String = "") As DataTable 执行存储过程Str_proName,返回DATATABLE 以ole开头的方法,用于访问ACCESS数据库 Tools类:工具 方法: 数字转中文大写 GetMonthDateMin:取月份最小日期,表示为:2018-01-01 00:00:00 GetMonthDateMax:取月份最大日期,表示为:2018-01-01 23:59:59 GetField:返回字符值内容,如果值为NULL,则返回为“” GetFieldNum:返回数值内容,如果值为NULL,则返回0 GetFieldNumEX:返回数值内容,如果值为NULL,则返回"" GetMacList:取本机的MAC地址列表 GetMaxDate:返回日期的最大时间值 ,如:2018-01-05,则返回为:2018-01-05 23:59:59 GetMinDate:返回日期的最小时间值 GetPaperLists:返回指定打印机的纸张列表 GetPrinterLists:返回指定本机打印机列表 加密字符串:将指定的字串,按参数2和参数3计算后返回结果, 原码必须小于等 于20位,参数2只能是1-6,参数3只能是1-100 解密字符串:与加密字符串对应,返回解密后的结果

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧