c#中SqlParameter用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中SqlParameter用法相关的知识,希望对你有一定的参考价值。

c#中SqlParameter用法.txt

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); ...然后就可以执行数据库操作了。
-----------------------------------
或者用数组
参考技术A 构造函数:
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;

SqlParameter用法

if (id != null)
{
sql = @"update [User] set Username = @Username, Password = @Password, Type = @UserType, FullName = @FullName, Telephone = @Telephone, Department = @Department where ID=" + id;
}
else
{
sql = @"insert into [User] (Username, Password, Type, FullName, Telephone, Department) values (@Username, @Password, @UserType, @FullName, @Telephone, @Department)";
}

SqlParameter[] parms = new SqlParameter[]
{
new SqlParameter("@UserType", usertype),
new SqlParameter("@Username", sname),
new SqlParameter("@Password", spwd),
new SqlParameter("@FullName", fullname),
new SqlParameter("@Telephone", telephone),
new SqlParameter("@Department", dept)
};
SqlConnection conn = new SqlConnection(scnn);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(parms);
var row = cmd.ExecuteNonQuery();
conn.Close();






















以上是关于c#中SqlParameter用法的主要内容,如果未能解决你的问题,请参考以下文章

SqlParameter对象C# [重复]

SqlParameter的用法

SqlParameter用法

C#中,求一个返回类型为DataTable,并用SqlParameter传参的SqlHelper

System.Data.SqlClient.SqlParameter.IsNullable 的目的是啥?

SqlHelper中SqlHelperParameterCache类的用法介绍