目的是: 将username和content两个字段写入数据库的表LeaveWords中
在提交的事件中:
……
if (Db.AddMsg(RegInfo.username, RegInfo.content) > -1)//表示写入数据成功
{
Response.Write("<script language='javascript'>alert('恭喜,发贴成功');location.href='index.aspx';</script>");
}
else
{
Response.Write("<script language='javascript'>alert('很遗憾,发贴失败!');location.href='ly.aspx';</script>");
}……
但现在页面提示:编译器错误消息: CS0161: “Db.AddMsg(string, string)”: 并非所有的代码路径都返回值请问是哪点有问题哪??在线等
.aspx.cs中函数如下:
public int AddMsg(string username, string content)
{
Db db = new Db();
SqlParameter[] paramlist=
{
db.CreateInParam("@username",SqlDbType.NVarChar,200,username),
db.CreateInParam("@contents",SqlDbType.NVarChar,500,content)
};
try
{
db.RunProc("AddMsg", paramlist);
}
catch (Exception ex)
{
return 0;
}
}存储过程AddMsg如下:
ALTER PROCEDURE [dbo].[AddMsg]
@username nvarchar(200),
@contents nvarchar(500)
AS
BEGIN
Declare @account as int
set @account =
(select count(*) from leavewords where username=@username)
if (@account <1)
insert leavewords (username,contents)
values
(@username,@contents)
return @@Identity
END
在提交的事件中:
……
if (Db.AddMsg(RegInfo.username, RegInfo.content) > -1)//表示写入数据成功
{
Response.Write("<script language='javascript'>alert('恭喜,发贴成功');location.href='index.aspx';</script>");
}
else
{
Response.Write("<script language='javascript'>alert('很遗憾,发贴失败!');location.href='ly.aspx';</script>");
}……
但现在页面提示:编译器错误消息: CS0161: “Db.AddMsg(string, string)”: 并非所有的代码路径都返回值请问是哪点有问题哪??在线等
.aspx.cs中函数如下:
public int AddMsg(string username, string content)
{
Db db = new Db();
SqlParameter[] paramlist=
{
db.CreateInParam("@username",SqlDbType.NVarChar,200,username),
db.CreateInParam("@contents",SqlDbType.NVarChar,500,content)
};
try
{
db.RunProc("AddMsg", paramlist);
}
catch (Exception ex)
{
return 0;
}
}存储过程AddMsg如下:
ALTER PROCEDURE [dbo].[AddMsg]
@username nvarchar(200),
@contents nvarchar(500)
AS
BEGIN
Declare @account as int
set @account =
(select count(*) from leavewords where username=@username)
if (@account <1)
insert leavewords (username,contents)
values
(@username,@contents)
return @@Identity
END
{
Db db = new Db();
SqlParameter[] paramlist=
{
db.CreateInParam("@username",SqlDbType.NVarChar,200,username),
db.CreateInParam("@contents",SqlDbType.NVarChar,500,content)
};
try
{
db.RunProc("AddMsg", paramlist);
}
catch (Exception ex)
{
return 0;
}
}
try 中没有返回值,你的方法要求返回一个int 而try中没有,catch不是肯定能执行的所以报错
{
Db db = new Db();
SqlParameter[] paramlist=
{
db.CreateInParam("@username",SqlDbType.NVarChar,200,username),
db.CreateInParam("@contents",SqlDbType.NVarChar,500,content)
};
try
{
db.RunProc("AddMsg", paramlist);
}
catch (Exception ex)
{
return 0;
}
}
这段代码就有问题 try中没有return啊 只有在出错了 走到catch中了 才返回0 当然会报错
{
db.RunProc("AddMsg", paramlist);
return 1;
}
catch (Exception ex)
{
return 0;
}
这个是正解,try里面没有返回
try成功了要返回~~~如果catch exception了 也要有返回值
努力学习……
给分了