--------------------强制类型转换问题--------

Crossgate_J 2010-12-09 10:01:18
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <returns>返回值</returns>
public int RunSQL(string cmdText)
{
SqlCommand cmd = CreateSQLCommand(cmdText, null);
try
{
///执行存储过程
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}

///返回存储过程的参数值
return (int)cmd.Parameters[RETURNVALUE].Value;
}


return (int)cmd.Parameters[RETURNVALUE].Value;
这一句好像强制类型转换不过来。。该怎么修改?

...全文
123 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hairuiwoai 2010-12-09
  • 打赏
  • 举报
回复
应该先看完再思考~
Crossgate_J 2010-12-09
  • 打赏
  • 举报
回复
搞了半天。。关一下再开就好了- -#
这算个什么事。。。
q107770540 2010-12-09
  • 打赏
  • 举报
回复
ExecuteNonQuery 只会返回影响行数吧...

你直接获取ExecuteNonQuery()的返回值 来判断操作是否执行成功即可
Crossgate_J 2010-12-09
  • 打赏
  • 举报
回复
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 129:
行 130: ///返回存储过程的参数值
行 131: return (int)(cmd.Parameters[RETURNVALUE].Value);
行 132: }
行 133:


源文件: G:\036\MyWork\SqlHelper\SqlHelper.cs 行: 131

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
SqlHelper.SQLHelper.RunProc(String procName, SqlParameter[] prams) in G:\036\MyWork\SqlHelper\SqlHelper.cs:131
DAL.ProductDAL.Add_Product(Product product) in G:\036\MyWork\DAL\ProductDAL.cs:46

[Exception: 未将对象引用设置到对象的实例。]
DAL.ProductDAL.Add_Product(Product product) in G:\036\MyWork\DAL\ProductDAL.cs:51
BLL.ProductBLL.Add_Product(Product product) in G:\036\MyWork\BLL\ProductBLL.cs:20
admin_addProduct.btn_Add_Click(Object sender, EventArgs e) in g:\036\MyWork\szsb\admin\addProduct.aspx.cs:49
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

这是返回int型的错误
Crossgate_J 2010-12-09
  • 打赏
  • 举报
回复
    if (productBll.Add_Product(product) > 0)
{
Response.Write("<script>alert('添加成功');location.href='showProducts.aspx';</script>");
}

我是想返回一个参数判断它是否运行成功。。
天下在我心 2010-12-09
  • 打赏
  • 举报
回复
public string RunSQL(string cmdText)


return cmd.Parameters[RETURNVALUE].Value.ToString();
天下在我心 2010-12-09
  • 打赏
  • 举报
回复
楼主先返回这个值tostring()下,看下究竟什么,存储过程返回的是什么,是不是可以转换
Crossgate_J 2010-12-09
  • 打赏
  • 举报
回复
Crossgate_J 2010-12-09
  • 打赏
  • 举报
回复
private readonly string RETURNVALUE = "RETURNVALUE";
#blackheart 2010-12-09
  • 打赏
  • 举报
回复
return int.Parse(cmd.Parameters[RETURNVALUE].Value);
moudy 2010-12-09
  • 打赏
  • 举报
回复
return (int)cmd.Parameters["RETURNVALUE"].Value;


RETURNVALUE是变量还是常量??

返回的是字符?能强制转换为整形吗?

try
{
return (int)cmd.Parameters["RETURNVALUE"].Value;
}
catch
{
return 0;
}
天下在我心 2010-12-09
  • 打赏
  • 举报
回复
public int RunSQL(string cmdText)
改下:
public string RunSQL(string cmdText)
返回的ToString()肯定没问题的
q107770540 2010-12-09
  • 打赏
  • 举报
回复
Value值是数字么?
int.TryParse()
Crossgate_J 2010-12-09
  • 打赏
  • 举报
回复
        /// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateProcCommand(procName, prams);
try
{
///执行存储过程
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}

///返回存储过程的参数值
return (int)cmd.Parameters[RETURNVALUE].Value;
}

是这部分的最后一句。。

62,046

社区成员

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

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

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

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