protected void Page_Load(object sender, EventArgs e)
{
SetStatus();//初始化下拉框
} public void SetStatus()
{
PublicTool pt = new PublicTool(); pt.SetDDlValue("SalMakeStatus", "Asc", false, ddlFStatus); //记录状态
this.ddlFStatus.SelectedValue = "2"; }
另外一个页面的代码如下:public class PublicTool : PageKey
{
DAC DAC1 = new DAC(); //数据库操作类对象
DHCommon DHCommon1 = new DHCommon(); //公共操作对象
KISSError errReturn = null;
public PublicTool()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 绑定下拉列表
/// </summary>
/// <param name="ddSeq"></param>
/// <param name="Sort"></param>
/// <param name="IsSys"></param>
/// <param name="ddl"></param>
public void SetDDlValue(string ddSeq, string Sort, bool IsSys, DropDownList ddl)
{
KISSError ERRrETURN;
DataSet ds = new DataSet();
ERRrETURN = DHCommon1.GetCodeDetail(ddSeq, Sort, IsSys, ref ds);
if (ERRrETURN != KISSError.KISS_OK)
{
TransErr(ERRrETURN);
}
else
{
ddl.DataSource = ds;
ddl.DataValueField = "Fcode";
ddl.DataTextField = "FDDLText";
ddl.DataBind();
}
}
另外一个页面 如下:
public KISSError GetCodeDetail(string strField,string strSort,bool IsSys, ref DataSet ds)
{
KISSError errReturn = KISSError.KISS_OK; //统一错误处理对象 初始化时标志没有错误 string[,] strParmater = new string[3, 4]
{
{ "chrFieldValue", "input", strField, "NVarChar" },
{ "chrSort", "input", strSort, "NVarChar" },
{ "curStatus", "output", "", "Cursor" }
}; //
//***************************************************************************** OracleParameter[] parms = this.getParameter(strParmater);
//执行存储过程返回有2个表数据集。表1-当前页显示的数据,表2-所有数据记录数
if(!IsSys)
errReturn = DAC1.GetDSet(CommandType.StoredProcedure, "PKG_Common.PROC_GetSysCodeDetail", ref ds, parms);
else
errReturn = DAC1.GetDSet(CommandType.StoredProcedure, "PKG_Common.PROC_GetCodeDetail", ref ds, parms);
//判断有没有错误
return errReturn;
}
数据库操作类 如下:
public class DAC
{
/// <summary>
/// 数据库连接字符串变量
/// </summary>
private string strConnectionStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
/// <summary>
/// 数据库连接类变量
/// </summary>
private OracleConnection oracleConn = null;
/// <summary>
/// 数据库执行命令类变量
/// </summary>
private OracleCommand oracleCmd = null;
/// <summary>
/// 构造函数 /// </summary>
public DAC()
{
try
{
//判断连接是否存在,如果不存在则新建一个Connection
if (oracleConn == null)
{
oracleConn = new OracleConnection(strConnectionStr);
}
}
catch
{
throw new Exception("数据库未正常连接!");
}
}另一个页面
public class DHCommon
{
DAC DAC1 = new DAC();
public DHCommon()
{
}
}
另一个页面 如下
public class PageKey : System.Web.UI.Page
{
DHCommon DHCommon1 = new DHCommon();
public PageKey()
{
//
//TODO: 在此处添加构造函数逻辑
//
//string IsSessionError = Application["IsSessionError"] == null ? "" : Application["IsSessionError"].ToString();
//if (IsSessionError == "true")
// Response.Redirect("/kiss/SessionError.html");
}
/// <summary>
/// 添加存储过程参数
/// </summary>
/// <param name="strParmater">参数数组</param>
/// <returns></returns>
public OracleParameter[] getParameter(string[,] strParmater)
{
OracleParameter[] parms = new OracleParameter[strParmater.GetLength(0)]; //存储过程参数列表 for (int i = 0; i < strParmater.GetLength(0); i++)
{
parms[i] = new OracleParameter();
parms[i].ParameterName = strParmater[i, 0]; if (strParmater[i, 1] == "input")
parms[i].Direction = ParameterDirection.Input;
else if (strParmater[i, 1] == "output")
{
parms[i].Direction = ParameterDirection.Output;
}
else if (strParmater[i, 1] == "inputoutput")
{
parms[i].Direction = ParameterDirection.InputOutput;
//create by cenlo 设置参数长度
parms[i].Size=1024;
//end
}
else
{
parms[i].Direction = ParameterDirection.ReturnValue;
}
if (strParmater[i, 2] == "")
{
parms[i].Value = DBNull.Value;
}
else
{
if (strParmater[i, 3] == "Number")
parms[i].Value = Int64.Parse(strParmater[i, 2]);
else
{
string parmStr=strParmater[i, 2];
//if (parmStr != "")
//{
// if (parmStr.Contains('\''))
// {
// parmStr = parmStr.Replace("'", "''");
// }
// parmStr = parmStr.Trim();
//}
parms[i].Value = parmStr;
//parms[i].Value = parmStr.Trim(',');
//parms[i].Value = strParmater[i, 2].Trim().Trim(',').Trim('\'').Trim('"').Trim('/');
}
} if (strParmater[i, 3] == "NChar")
parms[i].OracleType = OracleType.NChar;
else if (strParmater[i, 3] == "NVarChar")
parms[i].OracleType = OracleType.NVarChar;
else if (strParmater[i, 3] == "Number")
parms[i].OracleType = OracleType.Number;
else if (strParmater[i, 3] == "Cursor")
parms[i].OracleType = OracleType.Cursor; //add by xmy 2008/6/3
else if (strParmater[i, 3] == "VarChar")
parms[i].OracleType = OracleType.VarChar;
//add by xmy 2008/6/3 设置输入输出参数的长度 if (strParmater.GetLength(1)==5)
{
if (strParmater[i, 1] == "inputoutput")
{
parms[i].Size =int.Parse(strParmater[i, 4]);
}
}
//add by xmy 2008/6/3 设置输入输出参数的长度 }
return parms;
} /// <summary>
/// 通过调用存储过程获得DataSet
/// </summary>
/// <param name="strProcudureName">存储过程名称</param>
/// <param name="oracleparam">存储过程需要的参数</param>
/// <returns>数据集</returns>
public KISSError GetDSet(CommandType cmdType, string strProcudureName, ref DataSet ds, params OracleParameter[] oracleparam)
{
KISSError errReturn = KISSError.KISS_OK; //统一错误处理对象 初始化时标志没有错误 try
{
oracleCmd = new OracleCommand();
oracleCmd.Connection = oracleConn;
OpenConn();
oracleCmd.CommandText = strProcudureName;
oracleCmd.CommandType = cmdType; ds = new DataSet();
if (oracleparam != null)
{
foreach (OracleParameter parm in oracleparam)
oracleCmd.Parameters.Add(parm);
} OracleDataAdapter oracleAdp = new OracleDataAdapter();
oracleAdp.SelectCommand = oracleCmd;
oracleAdp.Fill(ds);
}
catch (Exception ex)
{
errReturn = new KISSError();
errReturn.ErrorLevel = SysEnums.KISSErrorLevel.SystemError; //系统错误
errReturn.ModuleName = ex.GetType().FullName;
errReturn.MethodName = ex.TargetSite.ToString();
errReturn.UserErrMsg = ex.Message;
//throw new Exception(ex.GetType().ToString() + ex.Message); }
finally
{
oracleConn.Close();
} return errReturn;
//return ds;
}
{
SetStatus();//初始化下拉框
} public void SetStatus()
{
PublicTool pt = new PublicTool(); pt.SetDDlValue("SalMakeStatus", "Asc", false, ddlFStatus); //记录状态
this.ddlFStatus.SelectedValue = "2"; }
另外一个页面的代码如下:public class PublicTool : PageKey
{
DAC DAC1 = new DAC(); //数据库操作类对象
DHCommon DHCommon1 = new DHCommon(); //公共操作对象
KISSError errReturn = null;
public PublicTool()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 绑定下拉列表
/// </summary>
/// <param name="ddSeq"></param>
/// <param name="Sort"></param>
/// <param name="IsSys"></param>
/// <param name="ddl"></param>
public void SetDDlValue(string ddSeq, string Sort, bool IsSys, DropDownList ddl)
{
KISSError ERRrETURN;
DataSet ds = new DataSet();
ERRrETURN = DHCommon1.GetCodeDetail(ddSeq, Sort, IsSys, ref ds);
if (ERRrETURN != KISSError.KISS_OK)
{
TransErr(ERRrETURN);
}
else
{
ddl.DataSource = ds;
ddl.DataValueField = "Fcode";
ddl.DataTextField = "FDDLText";
ddl.DataBind();
}
}
另外一个页面 如下:
public KISSError GetCodeDetail(string strField,string strSort,bool IsSys, ref DataSet ds)
{
KISSError errReturn = KISSError.KISS_OK; //统一错误处理对象 初始化时标志没有错误 string[,] strParmater = new string[3, 4]
{
{ "chrFieldValue", "input", strField, "NVarChar" },
{ "chrSort", "input", strSort, "NVarChar" },
{ "curStatus", "output", "", "Cursor" }
}; //
//***************************************************************************** OracleParameter[] parms = this.getParameter(strParmater);
//执行存储过程返回有2个表数据集。表1-当前页显示的数据,表2-所有数据记录数
if(!IsSys)
errReturn = DAC1.GetDSet(CommandType.StoredProcedure, "PKG_Common.PROC_GetSysCodeDetail", ref ds, parms);
else
errReturn = DAC1.GetDSet(CommandType.StoredProcedure, "PKG_Common.PROC_GetCodeDetail", ref ds, parms);
//判断有没有错误
return errReturn;
}
数据库操作类 如下:
public class DAC
{
/// <summary>
/// 数据库连接字符串变量
/// </summary>
private string strConnectionStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
/// <summary>
/// 数据库连接类变量
/// </summary>
private OracleConnection oracleConn = null;
/// <summary>
/// 数据库执行命令类变量
/// </summary>
private OracleCommand oracleCmd = null;
/// <summary>
/// 构造函数 /// </summary>
public DAC()
{
try
{
//判断连接是否存在,如果不存在则新建一个Connection
if (oracleConn == null)
{
oracleConn = new OracleConnection(strConnectionStr);
}
}
catch
{
throw new Exception("数据库未正常连接!");
}
}另一个页面
public class DHCommon
{
DAC DAC1 = new DAC();
public DHCommon()
{
}
}
另一个页面 如下
public class PageKey : System.Web.UI.Page
{
DHCommon DHCommon1 = new DHCommon();
public PageKey()
{
//
//TODO: 在此处添加构造函数逻辑
//
//string IsSessionError = Application["IsSessionError"] == null ? "" : Application["IsSessionError"].ToString();
//if (IsSessionError == "true")
// Response.Redirect("/kiss/SessionError.html");
}
/// <summary>
/// 添加存储过程参数
/// </summary>
/// <param name="strParmater">参数数组</param>
/// <returns></returns>
public OracleParameter[] getParameter(string[,] strParmater)
{
OracleParameter[] parms = new OracleParameter[strParmater.GetLength(0)]; //存储过程参数列表 for (int i = 0; i < strParmater.GetLength(0); i++)
{
parms[i] = new OracleParameter();
parms[i].ParameterName = strParmater[i, 0]; if (strParmater[i, 1] == "input")
parms[i].Direction = ParameterDirection.Input;
else if (strParmater[i, 1] == "output")
{
parms[i].Direction = ParameterDirection.Output;
}
else if (strParmater[i, 1] == "inputoutput")
{
parms[i].Direction = ParameterDirection.InputOutput;
//create by cenlo 设置参数长度
parms[i].Size=1024;
//end
}
else
{
parms[i].Direction = ParameterDirection.ReturnValue;
}
if (strParmater[i, 2] == "")
{
parms[i].Value = DBNull.Value;
}
else
{
if (strParmater[i, 3] == "Number")
parms[i].Value = Int64.Parse(strParmater[i, 2]);
else
{
string parmStr=strParmater[i, 2];
//if (parmStr != "")
//{
// if (parmStr.Contains('\''))
// {
// parmStr = parmStr.Replace("'", "''");
// }
// parmStr = parmStr.Trim();
//}
parms[i].Value = parmStr;
//parms[i].Value = parmStr.Trim(',');
//parms[i].Value = strParmater[i, 2].Trim().Trim(',').Trim('\'').Trim('"').Trim('/');
}
} if (strParmater[i, 3] == "NChar")
parms[i].OracleType = OracleType.NChar;
else if (strParmater[i, 3] == "NVarChar")
parms[i].OracleType = OracleType.NVarChar;
else if (strParmater[i, 3] == "Number")
parms[i].OracleType = OracleType.Number;
else if (strParmater[i, 3] == "Cursor")
parms[i].OracleType = OracleType.Cursor; //add by xmy 2008/6/3
else if (strParmater[i, 3] == "VarChar")
parms[i].OracleType = OracleType.VarChar;
//add by xmy 2008/6/3 设置输入输出参数的长度 if (strParmater.GetLength(1)==5)
{
if (strParmater[i, 1] == "inputoutput")
{
parms[i].Size =int.Parse(strParmater[i, 4]);
}
}
//add by xmy 2008/6/3 设置输入输出参数的长度 }
return parms;
} /// <summary>
/// 通过调用存储过程获得DataSet
/// </summary>
/// <param name="strProcudureName">存储过程名称</param>
/// <param name="oracleparam">存储过程需要的参数</param>
/// <returns>数据集</returns>
public KISSError GetDSet(CommandType cmdType, string strProcudureName, ref DataSet ds, params OracleParameter[] oracleparam)
{
KISSError errReturn = KISSError.KISS_OK; //统一错误处理对象 初始化时标志没有错误 try
{
oracleCmd = new OracleCommand();
oracleCmd.Connection = oracleConn;
OpenConn();
oracleCmd.CommandText = strProcudureName;
oracleCmd.CommandType = cmdType; ds = new DataSet();
if (oracleparam != null)
{
foreach (OracleParameter parm in oracleparam)
oracleCmd.Parameters.Add(parm);
} OracleDataAdapter oracleAdp = new OracleDataAdapter();
oracleAdp.SelectCommand = oracleCmd;
oracleAdp.Fill(ds);
}
catch (Exception ex)
{
errReturn = new KISSError();
errReturn.ErrorLevel = SysEnums.KISSErrorLevel.SystemError; //系统错误
errReturn.ModuleName = ex.GetType().FullName;
errReturn.MethodName = ex.TargetSite.ToString();
errReturn.UserErrMsg = ex.Message;
//throw new Exception(ex.GetType().ToString() + ex.Message); }
finally
{
oracleConn.Close();
} return errReturn;
//return ds;
}
/// 绑定下拉列表
/// </summary>
/// <param name="ddSeq"></param>
/// <param name="Sort"></param>
/// <param name="IsSys"></param>
/// <param name="ddl"></param>
public void SetDDlValue(string ddSeq, string Sort, bool IsSys, DropDownList ddl)
{
KISSError ERRrETURN;
DataSet ds = new DataSet();
ERRrETURN = DHCommon1.GetCodeDetail(ddSeq, Sort, IsSys, ref ds);
if (ERRrETURN != KISSError.KISS_OK)
{
TransErr(ERRrETURN);
}
else
{
ddl.DataSource = ds;
ddl.DataValueField = "Fcode";
ddl.DataTextField = "FDDLText";
ddl.DataBind();
}
}
ddl.DataValueField = "Fcode";
ddl.DataTextField = "FDDLText";
ddl.DataBind();
这就是关键代码
ddl.DataValueField = "Fcode";
ddl.DataTextField = "FDDLText";
ddl.DataBind();绑定在这里!
都不知道 这个下拉列表怎么绑定出来的3个值:空格,L-未指定,3-锁定
这3个绑定在DropDownList中的值 是从
ddl.DataSource = ds;
ddl.DataValueField = "Fcode";
ddl.DataTextField = "FDDLText";
ddl.DataBind();
的哪个里边查询出来的?
都不知道 这个下拉列表怎么绑定出来的3个值:空格,L-未指定,3-锁定
这3个绑定在DropDownList中的值 是从
ddl.DataSource = ds;
ddl.DataValueField = "Fcode";
ddl.DataTextField = "FDDLText";
ddl.DataBind();
的哪个里边查询出来的?
ERRrETURN = DHCommon1.GetCodeDetail(ddSeq, Sort, IsSys, ref ds);
主要是ref dataset
{
oracleCmd = new OracleCommand();
oracleCmd.Connection = oracleConn;
OpenConn();
oracleCmd.CommandText = strProcudureName;
oracleCmd.CommandType = cmdType; ds = new DataSet();
if (oracleparam != null)
{
foreach (OracleParameter parm in oracleparam)
oracleCmd.Parameters.Add(parm);
} OracleDataAdapter oracleAdp = new OracleDataAdapter();
oracleAdp.SelectCommand = oracleCmd;
oracleAdp.Fill(ds);
}
因为使用了ref
Ref指明了方法中使用的是引用型参数,引用型参数不开辟新的内存区域。当利用引用型参数向方法传递形参时,编译程序将把实际值在内存中的地址传递该方法。引用型参数通常已经初始化。
这个存储过程能看得到里面的代码?这个是里面的描述
begin
-- Call the procedure
pkg_common.proc_getsyscodedetail(chrfieldvalue => :chrfieldvalue,
chrsort => :chrsort,
curstatus => :curstatus);
end;这个存数过程 怎么显示结果 比如SQL Server 2005中的按F10 什么的~~~