首页上一页 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
........

 
	
                                                 VIP会员
VIP会员 购物车
购物车

 私信
                         私信 
                     发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对( 
                







 
                     
                     
					 
						 
						 
						 
						