[SOS]求救!这个存储过程以前用的没有问题,怎么今天用就出问题了!!!!救命啊

peteryuanhui 2008-05-13 11:37:16
1)存储过程:
CREATE PROCEDURE SpiderTaskData_Save
@MainTask nvarchar(50), --大任务名称,即大任务目录名称
@Subject nvarchar(100), --标题
@retval int output
/*
返回值描述:
-1:重复
-2:保存过程出现意外错误
0:保存成功
*/
AS
declare @ID int

set @ID = 0

--判断是否已经存在了网址相同的
select top 1 @ID = ID from Data where SUrlCode = @SUrlCode


if @ID = 0
begin
insert Data(MainTask,Subject)
values(@MainTask,@Subject)

if @@ERROR = 0
select @retval = 0
else
select @retval = -2
end
else
return -1
GO



2)程序部分:
private string SaveFileDialog()
{
string sqlConnectionString = "Data Source=(local);Initial Catalog=northwind;" +
"User ID=sa;Pwd=peteryu311312;Connection Timeout=20";

try
{
//MyMD5 objMD5 = new MyMD5();

SqlConnection objConn = new SqlConnection(sqlConnectionString);
SqlCommand objCmd = new SqlCommand();
objCmd.CommandText = "SpiderTaskData_Save";
objCmd.CommandType = CommandType.StoredProcedure;
objCmd.Connection = objConn;

objCmd.Parameters.Add("@MainTask", SqlDbType.NVarChar, 50).Value = "2008-4-25测试";
objCmd.Parameters.Add("@Subject", SqlDbType.NVarChar, 100).Value = "万克花--个人简历表,易聘网山东人才网枣庄人才热线";
objCmd.Parameters.Add("@retval", SqlDbType.Int);
objCmd.Parameters["@retval"].Direction = ParameterDirection.Output;

objConn.Open();

objCmd.ExecuteNonQuery();

switch ((int)objCmd.Parameters["@retval"].Value)
{
case 0:
return "成功";
case -1:
return "!重复";
default:
return "!!意外出错";
}
objCmd.Dispose();
objConn.Close();
}
catch (SqlException sqlError)
{
return sqlError.Message;
}
}

3)出错提示部分:
未处理 System.InvalidCastException
Message="指定的转换无效。"

按道理无论是出现了哪种情况应该都会返回整数型的值啊,结果好象返回了dbnull.

4)尝试:

后来将存储过程中的操作部分全部注释后,只return 1,结果仍旧是这个错误,所以才非常的奇怪。

怎么尝试都同一错误。
...全文
13 点赞 收藏 回复
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
C#
创建于2007-09-28

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2008-05-13 11:37
社区公告

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