首页上一页 1 下一页尾页 2 条记录 1/1页
C# 自学视频教程 第21章疑问
发表在C#图书答疑
2016-08-20
是否精华
是
否
版块置顶:
是
否
作为明日资料的忠实粉丝,感觉C#自学视频教程当中第21章提到的SqlParameter MakeInParam()、SelectCommand.Parameters、SqlParameter parameter在配套资料上没有提及,所以在看下面类似代码时很迷茫,你能帮忙简述这几个东西的用法吗?也可以提供一些用于了解的资料,个人邮箱:e23456@foxmail.com,谢谢!
.......
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);//创建SQL参数
}
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;//声明SQL参数对象
if (Size > 0)//判断参数字段是否大于0
param = new SqlParameter(ParamName, DbType, Size);//根据指定的类型和大小创建SQL参数
else
param = new SqlParameter(ParamName, DbType);//根据指定的类型创建SQL参数
param.Direction = Direction;//设置SQL参数的类型
if (!(Direction == ParameterDirection.Output && Value == null))//判断是否为输出参数
param.Value = Value;//设置参数返回值
return param;//返回SQL参数
}
#endregion
#region 执行参数命令文本(无数据库中数据返回)
/// <summary>
/// 执行命令
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <returns></returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);//创建SqlCommand命令对象
cmd.ExecuteNonQuery();//执行SQL命令
this.Close();//关闭数据库连接
return (int)cmd.Parameters["ReturnValue"].Value;//得到执行成功返回值
}
/// <summary>
/// 直接执行SQL语句
/// </summary>
/// <param name="procName">命令文本</param>
/// <returns></returns>
public int RunProc(string procName)
{
this.Open();//打开数据库连接
SqlCommand cmd = new SqlCommand(procName, con);//创建SqlCommand命令对象
cmd.ExecuteNonQuery();//执行SQL命令
this.Close();//关闭数据库连接
return 1;//返回1,表示执行成功
}
#endregion
#region 执行参数命令文本(有返回值)
.......
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
this.Open();//打开数据库连接
SqlDataAdapter dap = new SqlDataAdapter(procName, con);//创建桥接器对象
dap.SelectCommand.CommandType = CommandType.Text;//指定要执行的类型为命令文本
if (prams != null)//判断SQL参数是否不为空
{
foreach (SqlParameter parameter in prams)//遍历传递的每个SQL参数
dap.SelectCommand.Parameters.Add(parameter);//将SQL参数添加到执行命令对象中
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,string.Empty, DataRowVersion.Default, null));
return dap;//返回桥接器对象
}
#endregion
........
.......
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);//创建SQL参数
}
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;//声明SQL参数对象
if (Size > 0)//判断参数字段是否大于0
param = new SqlParameter(ParamName, DbType, Size);//根据指定的类型和大小创建SQL参数
else
param = new SqlParameter(ParamName, DbType);//根据指定的类型创建SQL参数
param.Direction = Direction;//设置SQL参数的类型
if (!(Direction == ParameterDirection.Output && Value == null))//判断是否为输出参数
param.Value = Value;//设置参数返回值
return param;//返回SQL参数
}
#endregion
#region 执行参数命令文本(无数据库中数据返回)
/// <summary>
/// 执行命令
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <returns></returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);//创建SqlCommand命令对象
cmd.ExecuteNonQuery();//执行SQL命令
this.Close();//关闭数据库连接
return (int)cmd.Parameters["ReturnValue"].Value;//得到执行成功返回值
}
/// <summary>
/// 直接执行SQL语句
/// </summary>
/// <param name="procName">命令文本</param>
/// <returns></returns>
public int RunProc(string procName)
{
this.Open();//打开数据库连接
SqlCommand cmd = new SqlCommand(procName, con);//创建SqlCommand命令对象
cmd.ExecuteNonQuery();//执行SQL命令
this.Close();//关闭数据库连接
return 1;//返回1,表示执行成功
}
#endregion
#region 执行参数命令文本(有返回值)
.......
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
this.Open();//打开数据库连接
SqlDataAdapter dap = new SqlDataAdapter(procName, con);//创建桥接器对象
dap.SelectCommand.CommandType = CommandType.Text;//指定要执行的类型为命令文本
if (prams != null)//判断SQL参数是否不为空
{
foreach (SqlParameter parameter in prams)//遍历传递的每个SQL参数
dap.SelectCommand.Parameters.Add(parameter);//将SQL参数添加到执行命令对象中
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,string.Empty, DataRowVersion.Default, null));
return dap;//返回桥接器对象
}
#endregion
........