出现并非所有路径代码都有返回值是怎么回事呀,求助!

yanlan112 2008-11-15 04:19:08
编写了一个DBHELPER类,内容为:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Configuration;
using System.Data;

namespace DBHelp
{
public class DBHelper
{
private static SqlConnection conn;
/// <summary>
/// 数据库连接
/// </summary>
/// <returns></returns>
public static SqlConnection Conn
{

get
{
if(conn==null)
{
conn=new SqlConnection(ConfigurationManager.ConnectionStrings["book"].ConnectionString.ToString());
conn.Open();
}
else if(conn.State==System.Data.ConnectionState.Closed)
{
conn.Open();
}
else if(conn.State==System.Data.ConnectionState.Broken)
{
conn.Close();
conn.Open();
}
return conn;
}
}
/// <summary>
/// 生成SQL参数
/// </summary>
/// <param name="newname"></param>
/// <param name="dbtype"></param>
/// <param name="value"></param>
/// <returns></returns>
public static SqlParameter GetParam(string newname, SqlDbType dbtype, object value)
{
SqlParameter aaa = new SqlParameter(newname, dbtype);
aaa.Value = value;
return aaa;
}
/// <summary>
/// 返回COMMAND
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static SqlCommand Getcmd(string sql,SqlParameter[] value)
{
SqlCommand cmd = new SqlCommand(sql, Conn);
if(value==null)
{
return cmd;
}
else
{
cmd.Parameters.AddRange(value);
return cmd;
}
}
/// <summary>
/// 返回错误信息
/// </summary>
/// <param name="err"></param>
/// <returns></returns>
public static string err()
{
return _err;
}
public static string _err;
/// <summary>
/// 执行SQL语句,返回受影响的行数
/// </summary>
/// <param name="cmd"></param>
/// <param name="value"></param>
/// <returns></returns>
public static int Execute(SqlCommand cmd)
{
try
{
int a=cmd.ExecuteNonQuery();
return a;
}
catch (Exception e)
{
_err = e.Message.ToString();
}
finally
{
Conn.Close();
}
}
/// <summary>
/// 返回DataReader
/// </summary>
/// <param name="cmd"></param>
/// <returns></returns>
public static SqlDataReader GetReader(SqlCommand cmd)
{
try
{
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sdr;
}
catch (Exception e)
{
_err = e.Message.ToString();
}
finally
{
Conn.Close();
}
}
/// <summary>
/// 根据CMD返回数据表DataTable
/// </summary>
/// <param name="cmd"></param>
/// <returns></returns>
public static DataTable GetDataTable(SqlCommand cmd)
{
try
{
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds, "t1");
return ds.Tables["t1"];
}
catch (Exception e)
{
_err = e.Message.ToString();
}
finally
{
Conn.Close();
}
}





}
}
调试时出现EXECUTE(),GETREADER(),GETDATATABLE()这三个方法出现错误,并非所有代码路径都有返回值,是怎么回事呀
想了半天,弄了半天实在弄不出来了

先谢谢各位了!
...全文
171 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengxj85 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fjleague 的回复:]
少一个return.都不用看代码就知道。
[/Quote]
.
fj_shaodw 2008-11-15
  • 打赏
  • 举报
回复
少一个return.都不用看代码就知道。
庚武讲堂 2008-11-15
  • 打赏
  • 举报
回复
看得出你的程序修为,实在不想打击你啊,...
一个花括号一个return。
这样基础的问题,不应该问,建议楼主去学学基础,锻炼一下。
yanlan112 2008-11-15
  • 打赏
  • 举报
回复
我是刚开始学做三层,能给这个类一点意见吗?
谢谢
止戈而立 2008-11-15
  • 打赏
  • 举报
回复
        public static SqlDataReader GetReader(SqlCommand cmd) 
{
SqlDataReader sdr=null;
try
{
sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//return sdr; //注释掉。。
}
catch (Exception e)
{
_err = e.Message.ToString();
return null; //加上这句
}
finally
{
Conn.Close();
}
return sdr; //放到这里
}

另一个就不用说了。。
止戈而立 2008-11-15
  • 打赏
  • 举报
回复
        public static int Execute(SqlCommand cmd) 
{
int a=0;//加上这句
try
{
a=cmd.ExecuteNonQuery();
//return a; 这句不要
}
catch (Exception e)
{
_err = e.Message.ToString();
}
finally
{
Conn.Close();
}
return a;//加上这句
}


其他两个位置也类似。。只是返回的初始值不同,应置为null
周公 2008-11-15
  • 打赏
  • 举报
回复
public static int Execute(SqlCommand cmd) 
{
int a=0;
try
{
a=cmd.ExecuteNonQuery();
return a;
}
catch (Exception e)
{
_err = e.Message.ToString();
}
finally
{
Conn.Close();
}
return a;
}

wuyq11 2008-11-15
  • 打赏
  • 举报
回复
public static int Execute(SqlCommand cmd)
{
try
{
int a=cmd.ExecuteNonQuery();
return a;
}
catch (Exception e)
{
_err = e.Message.ToString();
}
finally
{
Conn.Close();
}return 0;
}
public static DataTable GetDataTable(SqlCommand cmd)
{
try
{
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds, "t1");
return ds.Tables["t1"];
}
catch (Exception e)
{
_err = e.Message.ToString();
}
finally
{
Conn.Close();
}
return null;
}

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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