如有以下代码using System;
using System.Collections;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;/// <summary>
///Parameter 的摘要说明
/// </summary>
public class Parameter
{
public SqlParameter sqlParameter;
public Parameter(String parameterName, SqlDbType dbType, Int32 size, Object value)
{
sqlParameter = new SqlParameter(parameterName, dbType, size);
sqlParameter.Value = value;
}
}
oo.DbOperator.AddParameter(new Parameter("@CardNo", SqlDbType.VarChar, 20, CardNo).sqlParameter);上面的Parameter是我写的添加sqlParameter的方法
然后下面代码是添加参数的
那如果这里的
oo.DbOperator.AddParameter(new Parameter("@CardNo", SqlDbType.VarChar, 20, CardNo).sqlParameter);
我要写法为
oo.DbOperator.AddParameter(new Parameter("@CardNo", SqlDbType.VarChar, 20, CardNo));
这样子的话 上面的 Parameter类要怎么改谢谢
using System.Collections;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;/// <summary>
///Parameter 的摘要说明
/// </summary>
public class Parameter
{
public SqlParameter sqlParameter;
public Parameter(String parameterName, SqlDbType dbType, Int32 size, Object value)
{
sqlParameter = new SqlParameter(parameterName, dbType, size);
sqlParameter.Value = value;
}
}
oo.DbOperator.AddParameter(new Parameter("@CardNo", SqlDbType.VarChar, 20, CardNo).sqlParameter);上面的Parameter是我写的添加sqlParameter的方法
然后下面代码是添加参数的
那如果这里的
oo.DbOperator.AddParameter(new Parameter("@CardNo", SqlDbType.VarChar, 20, CardNo).sqlParameter);
我要写法为
oo.DbOperator.AddParameter(new Parameter("@CardNo", SqlDbType.VarChar, 20, CardNo));
这样子的话 上面的 Parameter类要怎么改谢谢
如果是的话那就OK了那就算这个OK了 那如果我非要像上面这样写的话 我上面那个类要怎么改呢谢谢
如果要加个类,用你的那个类继承SqlParamter就可
如果是的话那就OK了 那就算这个OK了 那如果我非要像上面这样写的话 我上面那个类要怎么改呢 谢谢
==========
是的.比如你可以用一个datatable来做update,那么sourceColumn就是datatable中更新之前的那个值(列名)
string parameterName,
SqlDbType dbType,
int size,
ParameterDirection direction,
bool isNullable,
byte precision,
byte scale,
string sourceColumn,
DataRowVersion sourceVersion,
Object value
)
注意以下两个参数.
sourceColumn
源列的名称。 sourceVersion
DataRowVersion 值之一。
那就四个就可以了
public SqlParameter (
string parameterName,
SqlDbType dbType,
int size,
string sourceColumn
)一般2个就行.
///Parameter 的摘要说明
/// </summary>
public class Parameter : SqlParameter //这里提示出错:“Parameter”: 无法从密封类型“System.Data.SqlClient.SqlParameter”派生
{
public Parameter(String parameterName, SqlDbType dbType, Int32 size, Object value)
:base(parameterName,dbType,size,sourceColumn) //这里我取不到sourceColumn这个值
{
}
}问题已经在程序中贴出谢谢
{
public statcit SqlParameter GetParameter(String parameterName, SqlDbType dbType, Int32 size, Object value)
{
SqlParameter p = new ...
return p.... }
}调用PBuilder.GetParameter(,.......)
-------------------
不是的因为如果写他那个的话就得要用
首先要多声明一个
using System.Data.SqlClient;
不想看到这个
sqlParameter = new SqlParameter(parameterName, dbType, size);
sqlParameter.Value = value;
他这里还要分两分看起来不爽所以想写一个一次过的话OK的谢谢
和我的
oo.DbOperator.AddParameter(new Parameter("@CardNo", SqlDbType.VarChar, 20, CardNo).sqlParameter);
差不多啊 谢谢
----------------------
我看了确实有两个参数的
sqlParameter = new SqlParameter(parameterName,value);
那如果这样的话SqlDbType, int Size 这两个不用吗
但我看别人的程序都是用4个的没有看到用两个的
用两个和用四个有什么样的区别谢谢
用两个和用四个有什么样的区别
可以不用的,,不加的话就是以数据库里的参数为准比如说你数据库参数定义的是 varchar 20 你又在sqlParameter 里定义了Size=10 那么现在只能传长度为10的字符
区别就是多了两参数.type和size,
这样能更明确些.