(6)执行参数命令文本(有返回值)
#region
public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
{
SqlDataAdapter dap = CreateDataAdaper(procName, prams);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
//得到执行成功返回值
return ds;
}
public DataSet RunProcReturn(string procName, string tbName) // -- 1 --
{
SqlDataAdapter dap = CreateDataAdaper(procName, null);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
//得到执行成功返回值
return ds;
}
#endregion
(7)将命令文本添加到SqlDataAdapter
#region
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
this.Open();
SqlDataAdapter dap = new SqlDataAdapter(procName, SqlCon);
dap.SelectCommand.CommandType = CommandType.Text; //执行类型:命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter);
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return dap;
}
#endregion
(8)将命令文本添加到SqlCommand
#region
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
// 确认打开连接
this.Open();
SqlCommand cmd = new SqlCommand(procName, SqlCon);
cmd.CommandType = CommandType.Text; //执行类型:命令文本
// 依次把参数传入命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
// 加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
#endregion
3.基础功能模块类(ClsSQL.cs)设计
基础功能模块类主要处理业务逻辑功能。业务层是建成立在数据层和陈述层之上完成的,也就是处理功能窗体与数据库操作的业务功能。下面以“档案室整本图册管理”为例进行功能代码分析。
(1)定义整本图册类(数据结构)
当读取或设置整本图册数据时,都是通过整本图册类ClsScroll实现的。代码如下:
#region 定义-- 整本图登记表-- 数据结构
public class ClsScroll //整本图登记帐-- 类定义:ClsScroll
{
private string Id = "";
private string Scl_1 = "";
private string Scl_2 = "";
private string Scl_3 = "";
//注:此处省略了类似的定义
private string Scl_20 = "";
private string Scl_21 = "";
private string Creator = "";
private string Ctime = "";
private string Mender = "";
private string Mtime = "";
public string MyId
{
get { return Id; }
set { Id = value; }
}
public string MyScl_1
{
get { return Scl_1; }
set { Scl_1 = value; }
}
public string MyScl_2
{
get { return Scl_2; }
set { Scl_2 = value; }
}
//注:此处省略了类似的定义结构
public string MyScl_21
{
get { return Scl_21; }
set { Scl_21 = value; }
}
public string MyCreator
{
get { return Creator; }
set { Creator = value; }
}
public string MyCtime
{
get { return Ctime; }
set { Ctime = value; }
}
public string MyMender
{
get { return Mender; }
set { Mender = value; }
}
public string MyMtime
{
get { return Mtime; }
set { Mtime = value; }
}
}
#endregion
(2)整本图册数据基本操作
整本图册数据基本操作主要用于完成对整本图数据的添加、修改、删除、查询及唯一性校验等操作。以下的方法主要提供给陈述层(功能窗体)调用,从编码的角度出发,以下方法的实现是建立在数据层和陈述层(数据库操作类ClsDB.cs)的基础上完成的。
1)判断分类卷号[Scl_1]在[tb_Scroll]表中是否存在
#region
public bool Find_Srl_1_YN(string TmpScl_1) //返回逻辑值
{
DataSet ds = null;
ds = data.RunProcReturn("select * from tb_Scroll where Scl_1='" + TmpScl_1 + "'", "tb_Scroll");
if (ds.Tables[0].Rows.Count > 0)
{ return true; } //存在返回 -- true
else
{ return false; } //不存在返回 -- false
}
#endregion
2)获取整本图登记帐信息表(tb_Scroll)中所有数据 -- 升序--
#region
public DataSet GetAll_Scroll_Data(string tbName) // -- 返回前%条记录-- top 1 percent
{
return (data.RunProcReturn("select top 1 percent Id,Scl_1,Scl_2,Scl_3,Scl_4,Scl_5,Scl_6,Scl_7," +
"Scl_17,Scl_18,Scl_19,Scl_20,Scl_21,Creator,Ctime,Mender,Mtime" +
" from tb_Scroll where Scl_1 like 'C%'" +
" order by Id Asc", tbName));
}
#endregion
|