-------------------------------------------------2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!-------------------------------------------------------
1. 几个重要的属性
ParameterName:设置参数名
Value:给参数设置值
Size:设置参数字节最大大小(以字节为单位)
SqlDbType:参数在SQL中的类型
SqlParameter paras =new SqlParameter()
{
ParameterName ="@name",
Value =10,
SqlDbType = SqlDbType.Int,
Size =4
};
2.命令对象添加参数集合的几种方法
①AddWithValue
②Add
③AddRange
using (SqlConnection connection =new SqlConnection(""))
{
SqlCommand command = connection.CreateCommand();
command.CommandText ="";
//可以使用这种方式添加多个参数,不过方式不够好
command.Parameters.Add("@name", SqlDbType.NVarChar).Value = "Tom"; //第一种方式
command.Parameters.Add("@age",SqlDbType.Int).Value = 888;
command.Parameters.Add("@address", SqlDbType.NVarChar,100).Value ="Beijing";
//这种方式直接给定参数名和参数就可以了,可操作性比较差
command.Parameters.AddWithValue("@name","Tom");
command.Parameters.AddWithValue("@age",888).SqlDbType = SqlDbType.Int;
command.Parameters.AddWithValue("@address","Beijing").SqlDbType = SqlDbType.NVarChar;
//直接使用参数集合添加你需要的参数,推荐这种写法
SqlParameter[] parameters =new SqlParameter[]
{
new SqlParameter("@name",SqlDbType.NVarChar,100){Value = "Tom"},
new SqlParameter("@age",SqlDbType.Int,2){Value = 888},
new SqlParameter("@address",SqlDbType.NVarChar,20){Value = "Beijing"},
};
command.Parameters.AddRange(parameters); //参数也可以是一个Array数组,如果采用数组参数代码的可读性和扩展性就不是那么好了
//当我们把参数都添加好之后,会生成一个“SqlParameterCollection”集合类型,相当于参数的集合
//那么我们就可以对这些参数进行修改和移除了
//说穿了“SqlParameterCollection”内部其实是一个List<SqlParameter>的集合,只是它里面的复杂度比较高,考虑的很全面
command.Parameters[0].Value ="Tom";
command.Parameters[0].Size =200;
}
3.说说“SqlParameterCollection”,参数集合
上面添加的“SqlParameter”参数都被添加到了“SqlParameterCollection”集合中去了,所以我们才能够对它进行读取和修改!
4.定义适当的参数属性获取存储过程的返回值(return) → Direction = ParameterDirection.Output
using (SqlConnection conn =new SqlConnection(""))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText ="myProc";
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] paras =new[] //定义参数数组
{
new SqlParameter("@Description",SqlDbType.NVarChar,50,"RegionDescription"),
new SqlParameter("@RegionID",SqlDbType.Int,0,ParameterDirection.Output,false,0,0,"RegionID",DataRowVersion.Default,null) //定义此参数是Output参数
};
cmd.Parameters.AddRange(paras);
cmd.UpdatedRowSource = UpdateRowSource.OutputParameters;//这句话可以不要
//给参数赋值
cmd.Parameters["@Description"].Value ="Tom";
cmd.ExecuteNonQuery();
//获取返回值
int myRegionID = (int)cmd.Parameters["@RegionID"].Value;
Console.WriteLine("这是返回值:{0}", myRegionID.ToString());
}
---------------------------------------------------2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!---------------------------------------------------------
本文详细介绍了ADO.NET中的SqlParameter对象,包括设置参数名、值、大小和类型的方法。讲解了如何通过AddWithValue、Add和AddRange等方式向命令对象添加参数,并探讨了SqlParameterCollection参数集合的操作。此外,还展示了如何定义输出参数以获取存储过程的返回值。

7191

被折叠的 条评论
为什么被折叠?



