第一个参数为参数名,第二个参数为参数数据类型,第三个参数为参数数据类型长度(整形4位),第四个参数为参数类型(为存储过程的返回值),后面的参见:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataSqlClientSqlParameterClassctorTopic6.htm
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataSqlClientSqlParameterClassctorTopic6.htm
解决方案 »
- 现在有秒倒计时的功能,怎么转化成多少小时多少分,多少秒的?
- asp问题 修改密码时密码验证两次输入是否正确
- RewriteRule的问题
- 绑定数据源的textbox控件,如何才能设定默认值,使当进行插入、编辑等操作时显示该值,并自动赋值给数据库。
- SF2.0数据源标签在前台显示问题
- 有关vs.net几个入门级问题?
- 怎样给手机做网页??
- VS 调试 ,纯IE下不能自动显示网址,手工输入了也不行,是怎么回事?
- 应用程序中的服务器错误,编译器错误消息: CS1061:
- 关于Session["user"]的问题。
- 望各位赐教初级ASP.NET的问题,在线等待......
- 运行正常,但是数据库就是不更新!
另外 : 加了一个参数,是存储过程程的返回值的参数 , 为什么 加此 参数 ??
string parameterName,
SqlDbType dbType,
int size,
ParameterDirection direction,
bool isNullable,
byte precision,
byte scale,
string sourceColumn,
DataRowVersion sourceVersion,
object value
);参数说明:
parameterName
要映射的参数的名称。
dbType
SqlDbType 值之一。
size
参数的长度。
direction
ParameterDirection 值之一。
isNullable
如果该字段的值可为空,则为 true,否则为 false。
precision
要将 Value 解析为的小数点左右两侧的总位数。
scale
要将 Value 解析为的总小数位数。
sourceColumn
源列的名称。
sourceVersion
DataRowVersion 值之一。
value
一个 Object,它是 SqlParameter 的值。
==================if (Request.IsAuthenticated == true) {
cacheKey = "QQQ" + context.Request.QueryString["name"] + context.Request.QueryString["product_id"] + context.Request.QueryString["requestedPage"];
}
else {
cacheKey = "AAA" + context.Request.QueryString["name"] + context.Request.QueryString["product_id"] + context.Request.QueryString["requestedPage"];
可能是为了多人开发的时候,不产生命名冲突,所以加了前缀吧其实在比较大的系统里,session的使用,一般也是会分子系统使用前缀的
这个类一般是抽象的,必须让其他类继承,才能用到这个类。public [ClassName]
{
// 建立SqlConnection
}
构造函数,负责建立SqlConnection对象,注意这个对象是protected的。proected [返回类型] RunProcedure(string ProcedureName,IDataParameter[] parameters,[参数])
{
//执行存储过程,返回不同的内容
}
实际上,这个RunProcedure是个重载,它返回不同类型的值。有void,int,SqlDataReader和DataSet,分别代表不同的数据库操作:
void 表示在一个已经有数据的DataSet里面再加入一个DataTable,通常用于关系数据的操作。
int 表示用于执行不返回数据集的操作,如添加,删除等,返回值一般代表操作是否成功或者影响的行数。
SqlDataReader 这个不用我多说,我的最爱,显示数据时非常有用。
DataSet 对数据进行复杂操作时候可用
而且,这个方法必须声明为proected。下面一步就是贴主的CreateCommand()了,不过贴主的这个方法少写了一点。
这个方法的作用就是根据用户输入的内容,自动建立SqlCommand对象,用来对数据库进行操作。不过贴主的方法仅仅考虑了一种情况,就是返回类型为int的情况。这时候,才需要
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
上面代码是加入了一个名称为“ReturnValue”的存储过程参数,这个是SqlServer自动加入的参数。返回的值如果你不定义,那么就是影响的行数。
所以上面贴主的代码,仅仅是RunProcedure()的返回int类型时调用的方法。其他操作返回数据集,没有返回值。可能会出错。