2013-08-18
展开全部
C# 中SqlParameter类的使用方法小结
在c#中执行sql语句时传递参数的小经验 1、直接写入法: 例如: int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values("+Id+",'"+Name+"')"; 因为Id是数值,所以在传递的时候只需要在sql字符串中用"+Id+"即可实现,而 Name是字符串,所以在传递的时候还需要在"+Name+"两边各加一个单引号(')来 实现; 2、给命令对象添加参数法: 例如: int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values(@Id,@Name)"; //上条语句中直接在sql语句中写添加的参数名,不论参数类型都是如此. SqlParameter para=new SqlParameter("@Id",SqlDbType.int,4);//生成一个名字为@Id的参数,必须以@开头表示是添加的参数,并设置其类型长度,类型长度与数据库中对应字段相同 para.Value=Id;//给参数赋值 cmd.Parameters.Add(para);//必须把参数变量添加到命令对象中去。 //以下类似 para=new SqlParameter("@Name",SqlDbType.VarChar,16); para.Value=Name; com.Parameters.Add(para); ...然后就可以执行数据库操作了。
-----------------------------------
或者用数组
在c#中执行sql语句时传递参数的小经验 1、直接写入法: 例如: int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values("+Id+",'"+Name+"')"; 因为Id是数值,所以在传递的时候只需要在sql字符串中用"+Id+"即可实现,而 Name是字符串,所以在传递的时候还需要在"+Name+"两边各加一个单引号(')来 实现; 2、给命令对象添加参数法: 例如: int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values(@Id,@Name)"; //上条语句中直接在sql语句中写添加的参数名,不论参数类型都是如此. SqlParameter para=new SqlParameter("@Id",SqlDbType.int,4);//生成一个名字为@Id的参数,必须以@开头表示是添加的参数,并设置其类型长度,类型长度与数据库中对应字段相同 para.Value=Id;//给参数赋值 cmd.Parameters.Add(para);//必须把参数变量添加到命令对象中去。 //以下类似 para=new SqlParameter("@Name",SqlDbType.VarChar,16); para.Value=Name; com.Parameters.Add(para); ...然后就可以执行数据库操作了。
-----------------------------------
或者用数组
展开全部
构造函数:
public SqlParameter (
string parameterName,
SqlDbType dbType,
int size,
ParameterDirection direction,
byte precision,
byte scale,
string sourceColumn,
DataRowVersion sourceVersion,
bool sourceColumnNullMapping,
Object value,
string xmlSchemaCollectionDatabase,
string xmlSchemaCollectionOwningSchema,
string xmlSchemaCollectionName
)
sqlparameter参数说明
parameterName
要映射的参数的名称。
dbType
SqlDbType 值之一。
size
参数的长度。
direction
ParameterDirection
值之一。
precision
要将 Value
解析为的小数点左右两侧的总位数。
scale
要将 Value 解析为的总小数位数。
sourceColumn
源列的名称。
sourceVersion
DataRowVersion
值之一。
sourceColumnNullMapping
如果源列可为空,则为
true;如果不可为空,则为 false。
value
一个 Object,它是 SqlParameter
的值。
xmlSchemaCollectionDatabase
此 XML
实例的架构集合所在的数据库的名称。
xmlSchemaCollectionOwningSchema
包含此 XML
实例的架构集合的关系架构。
xmlSchemaCollectionName
此参数的架构集合的名称。
sqlparameter常见的方法
Add方法:
SqlParameter sp = new
SqlParameter("@name", "Pudding");
cmd.Parameters.Add(sp);
sp = new SqlParameter("@ID",
"1");
cmd.Parameters.Add(sp);
AddRange方法:
SqlParameter[] paras = new SqlParameter[] {
new SqlParameter("@name", "Pudding"), new SqlParameter("@ID", "1") };
cmd.Parameters.AddRange(paras);
完整实例:
//封装SqlParameter 一次性添加一行sql参数
public static SqlParameter AddParameter(string parameterName, object parameterValue, SqlDbType dbType, int parameterSize, ParameterDirection Direction)
{
SqlParameter par = new SqlParameter();
par.ParameterName = parameterName;
par.Value = parameterValue;
par.Direction = Direction;
par.SqlDbType = dbType;
if (parameterSize > 0) { par.Size = parameterSize; }
return par;
}
public static SqlParameter AddInParameter(string parameterName, object parameterValue, SqlDbType dbType, int parameterSize)
{
return AddParameter(parameterName, parameterValue, dbType, parameterSize, ParameterDirection.Input);
}
public static SqlParameter AddInParameter(string parameterName, object parameterValue, SqlDbType dbType)
{
return AddParameter(parameterName, parameterValue, dbType, 0, ParameterDirection.Input);
}
public static SqlParameter AddOutParameter(string parameterName, SqlDbType dbType)
{
return AddParameter(parameterName, DBNull.Value, dbType, 0, ParameterDirection.Output);
}
调用:
public DataSet GetPageList2005(string SelectList,string TableSource,int PageSize,int PageIndex,string strWhere,string OrderExpression,refint TotalRecord)
{
SqlParameter[]parameters={
DbHelperSQL.AddInParameter("@ReFieldsStr",SelectList,SqlDbType.VarChar,200),
DbHelperSQL.AddInParameter("@TableName", TableSource,SqlDbType.VarChar,50),
DbHelperSQL.AddInParameter("@WhereString",strWhere,SqlDbType.VarChar,500),
DbHelperSQL.AddInParameter("@OrderString", OrderExpression,SqlDbType.VarChar,200),
DbHelperSQL.AddInParameter("@PageSize",PageSize,SqlDbType.Int),
DbHelperSQL.AddInParameter("@PageIndex",PageIndex,SqlDbType.Int),
DbHelperSQL.AddOutParameter("@TotalRecord",SqlDbType.Int)
};
DataSet tmpds = DbHelperSQL.RunProcedure("GetPageList2005", parameters, "ds_"+ TableSource);
TotalRecord =int.Parse(parameters[6].Value.ToString());
return tmpds;
}
public SqlParameter (
string parameterName,
SqlDbType dbType,
int size,
ParameterDirection direction,
byte precision,
byte scale,
string sourceColumn,
DataRowVersion sourceVersion,
bool sourceColumnNullMapping,
Object value,
string xmlSchemaCollectionDatabase,
string xmlSchemaCollectionOwningSchema,
string xmlSchemaCollectionName
)
sqlparameter参数说明
parameterName
要映射的参数的名称。
dbType
SqlDbType 值之一。
size
参数的长度。
direction
ParameterDirection
值之一。
precision
要将 Value
解析为的小数点左右两侧的总位数。
scale
要将 Value 解析为的总小数位数。
sourceColumn
源列的名称。
sourceVersion
DataRowVersion
值之一。
sourceColumnNullMapping
如果源列可为空,则为
true;如果不可为空,则为 false。
value
一个 Object,它是 SqlParameter
的值。
xmlSchemaCollectionDatabase
此 XML
实例的架构集合所在的数据库的名称。
xmlSchemaCollectionOwningSchema
包含此 XML
实例的架构集合的关系架构。
xmlSchemaCollectionName
此参数的架构集合的名称。
sqlparameter常见的方法
Add方法:
SqlParameter sp = new
SqlParameter("@name", "Pudding");
cmd.Parameters.Add(sp);
sp = new SqlParameter("@ID",
"1");
cmd.Parameters.Add(sp);
AddRange方法:
SqlParameter[] paras = new SqlParameter[] {
new SqlParameter("@name", "Pudding"), new SqlParameter("@ID", "1") };
cmd.Parameters.AddRange(paras);
完整实例:
//封装SqlParameter 一次性添加一行sql参数
public static SqlParameter AddParameter(string parameterName, object parameterValue, SqlDbType dbType, int parameterSize, ParameterDirection Direction)
{
SqlParameter par = new SqlParameter();
par.ParameterName = parameterName;
par.Value = parameterValue;
par.Direction = Direction;
par.SqlDbType = dbType;
if (parameterSize > 0) { par.Size = parameterSize; }
return par;
}
public static SqlParameter AddInParameter(string parameterName, object parameterValue, SqlDbType dbType, int parameterSize)
{
return AddParameter(parameterName, parameterValue, dbType, parameterSize, ParameterDirection.Input);
}
public static SqlParameter AddInParameter(string parameterName, object parameterValue, SqlDbType dbType)
{
return AddParameter(parameterName, parameterValue, dbType, 0, ParameterDirection.Input);
}
public static SqlParameter AddOutParameter(string parameterName, SqlDbType dbType)
{
return AddParameter(parameterName, DBNull.Value, dbType, 0, ParameterDirection.Output);
}
调用:
public DataSet GetPageList2005(string SelectList,string TableSource,int PageSize,int PageIndex,string strWhere,string OrderExpression,refint TotalRecord)
{
SqlParameter[]parameters={
DbHelperSQL.AddInParameter("@ReFieldsStr",SelectList,SqlDbType.VarChar,200),
DbHelperSQL.AddInParameter("@TableName", TableSource,SqlDbType.VarChar,50),
DbHelperSQL.AddInParameter("@WhereString",strWhere,SqlDbType.VarChar,500),
DbHelperSQL.AddInParameter("@OrderString", OrderExpression,SqlDbType.VarChar,200),
DbHelperSQL.AddInParameter("@PageSize",PageSize,SqlDbType.Int),
DbHelperSQL.AddInParameter("@PageIndex",PageIndex,SqlDbType.Int),
DbHelperSQL.AddOutParameter("@TotalRecord",SqlDbType.Int)
};
DataSet tmpds = DbHelperSQL.RunProcedure("GetPageList2005", parameters, "ds_"+ TableSource);
TotalRecord =int.Parse(parameters[6].Value.ToString());
return tmpds;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询