小弟在项目中遇到一个问题,在此求教
在一个分页存储过程中,我用到DataBase.GetParameterValue()来获得记录总数,代码如下: db.AddInParameter(dbCommand, "Table_Name", DbType.AnsiString, pager.TableName);
db.AddInParameter(dbCommand, "Primary_Key", DbType.AnsiString, pager.PrimaryKey);
db.AddInParameter(dbCommand, "Show_Fields", DbType.AnsiString, pager.ShowFields);
db.AddInParameter(dbCommand, "Page_Size", DbType.Int32, pager.PageSize);
db.AddInParameter(dbCommand, "Page_Index", DbType.Int32, pager.PageIndex);
db.AddOutParameter(dbCommand, "TotalCount", DbType.Int32, pager.TotalCount);
db.AddInParameter(dbCommand, "IsReTotalCount", DbType.Int32, 1);
db.AddInParameter(dbCommand, "Order_Field", DbType.AnsiString, pager.OrderField);
db.AddInParameter(dbCommand, "OrderType", DbType.Boolean, pager.OrderType);
db.AddInParameter(dbCommand, "where_Condition", DbType.String, pager.StrWhere);
using (DataSet ds = db.ExecuteDataSet(dbCommand))
{
if (db.GetParameterValue(dbCommand, "TotalCount") != DBNull.Value && db.GetParameterValue(dbCommand, "TotalCount") != null)
{
TotalCount = Convert.ToInt32((db.GetParameterValue(dbCommand, "TotalCount")));
dt = ds.Tables[0];
}
当我第一次传入0的时候可以获得返回总数,但是当我把总数转入存储过程,然后可以获得分页的信息,但是db.GetParameterValue(dbCommand, "TotalCount") == DBNull.Value 是我的参数传错了吗??
在一个分页存储过程中,我用到DataBase.GetParameterValue()来获得记录总数,代码如下: db.AddInParameter(dbCommand, "Table_Name", DbType.AnsiString, pager.TableName);
db.AddInParameter(dbCommand, "Primary_Key", DbType.AnsiString, pager.PrimaryKey);
db.AddInParameter(dbCommand, "Show_Fields", DbType.AnsiString, pager.ShowFields);
db.AddInParameter(dbCommand, "Page_Size", DbType.Int32, pager.PageSize);
db.AddInParameter(dbCommand, "Page_Index", DbType.Int32, pager.PageIndex);
db.AddOutParameter(dbCommand, "TotalCount", DbType.Int32, pager.TotalCount);
db.AddInParameter(dbCommand, "IsReTotalCount", DbType.Int32, 1);
db.AddInParameter(dbCommand, "Order_Field", DbType.AnsiString, pager.OrderField);
db.AddInParameter(dbCommand, "OrderType", DbType.Boolean, pager.OrderType);
db.AddInParameter(dbCommand, "where_Condition", DbType.String, pager.StrWhere);
using (DataSet ds = db.ExecuteDataSet(dbCommand))
{
if (db.GetParameterValue(dbCommand, "TotalCount") != DBNull.Value && db.GetParameterValue(dbCommand, "TotalCount") != null)
{
TotalCount = Convert.ToInt32((db.GetParameterValue(dbCommand, "TotalCount")));
dt = ds.Tables[0];
}
当我第一次传入0的时候可以获得返回总数,但是当我把总数转入存储过程,然后可以获得分页的信息,但是db.GetParameterValue(dbCommand, "TotalCount") == DBNull.Value 是我的参数传错了吗??
解决方案 »
- 应用母版页后使用ModalPopupExtender无法获取ID的问题
- 关于ASP.NET前后台交互的问题
- 急!从vs2005换到vs2008后总是报“Microsoft JScript 运行时错误: 缺少对象,原因分析”
- 救命啊,Codefirst +sql2000分页问题
- Application还是静态变量
- ajax判断请求是否来自相同domain原理
- XSLT的问题
- 怎么在gridView 标题行中加入控件?
- 请问资源文件,在页面中,如何实现多语言的更换
- 请问个小问题:怎样自动"using"
- jquery 的css("color", "#666666").html("dd") 为啥会出错?
- Request.QueryString["id"];丢失怎么办?
当我获得第2页信息的时候 却是GetParameterValue(dbCommand, "TotalCount") == DBNull.Value 这是为什么
@Primary_Key varchar(50), --主键Primary_Key
@Show_Fields varchar(1000), --查找的字段 Show_Fields
@Page_Size int = 20, --页大小
@Page_Index int = 1, --页码
@Order_Field varchar(1000), --排序字段 Order_Field
@OrderType bit = 0, --排序方式 1为 DESC, 0为 ASC 默认值是升序 OrderType
@IsReTotalCount int, -- 返回记录总数, 非 0 值则返回记录总数
@where_Condition varchar(1000), --筛选条件,不带where_Condition (不加Where)
@TotalCount int output
存储过程中,我已经设置这样参数了
我知道了是这句话的问题,我想把output的参数每次传进去,可是没有传近去
然后我用
db.SetParameterValue(dbCommand,"TotalCount",100);
可是传的还是Null
这句是正确的~~
没有问题啊