请问各位大侠,这段代码中的Throw 为什么报错 ,删除也提示说没有返回值:public static Article GetArticleByArticleId(int id)
{
string sql = "select * from article where articleId=@articleId";
try
{
using (SqlDataReader reader = SqlHelper.GetReader(sql, new SqlParameter("@articleId", id)))
{
if (reader.Read())
{
return FillRecord(reader);
}
else
{
return null;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
}
}
{
string sql = "select * from article where articleId=@articleId";
try
{
using (SqlDataReader reader = SqlHelper.GetReader(sql, new SqlParameter("@articleId", id)))
{
if (reader.Read())
{
return FillRecord(reader);
}
else
{
return null;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
}
}
return null;
{
Console.WriteLine(e.Message);
throw e;
}
}这里边加RETURN NULL。TRY和CATCH是分支结构
namespace Wangzl.eProfessorPF.Bo
{
[Serializable()]
public class Article
{
private int _articleId; private int _channelId;
private string _title;
private string _articleDetails; public int ArticleId
{
get { return _articleId; }
set { _articleId = value; }
}
public int ChannelId
{
get { return _channelId; }
set { _channelId = value; }
}
public string Title
{
get { return _title; }
set { _title = value; }
}
public string ArticleDetails
{
get { return _articleDetails; }
set { _articleDetails = value; }
}
}
}
public static Article GetArticleByArticleId(int id)
{
string sql = "select * from article where articleId=@articleId";
try
{
using (SqlDataReader reader = SqlHelper.GetReader(sql, new SqlParameter("@articleId", id)))
{
if (reader.Read())
{
return FillRecord(reader);
}
else
{
return null;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
return null;
}
/// 执行有参SQL语句,并返回SqlDataReader
/// </summary>
public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}
parameters[0].Value = id;
using (SqlDataReader reader = SqlHelper.GetReader(sql,parameters))
{
if (reader.Read())
{
return FillRecord(reader);
}
else
{
return null;
}
string sql = "select * from article where isPost=@isPost and channelId=@channelId order by dateCreated desc";
try
{
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@isPost",flag),
new SqlParameter("@channelId",id)
}; using (SqlDataReader reader = SqlHelper.GetReader(sql, para))
{
if (reader.Read())
{
return FillRecord(reader);
}
else
{
return null;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
}
把赋值的地方都加上判断if(reader["articleId"]!=DBNull.value)
{
a.ArticleId = Convert.ToInt32(reader["articleId"]);
}//其它的自己加上上个帖子的
1.赋值之前判断下本身库中的值是不是“Null”
2.数据库中的“null”和程序中的不同
3.判断数据库中的是不是“null”用DBNull.Value判断