[SOS]求救!这个存储过程以前用的没有问题,怎么今天用就出问题了!!!!救命啊
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,结果仍旧是这个错误,所以才非常的奇怪。
怎么尝试都同一错误。