公共类:
Test.cs
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName, OleDbParameter[] prams)
{
OleDbCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
return (int)cmd.Parameters["ReturnValue"].Value;
}
....... /// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeParam(string ParamName, OleDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
OleDbParameter param; if(Size > 0)
param = new OleDbParameter(ParamName, DbType, Size);
else
param = new OleDbParameter(ParamName, DbType); param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value; return param;
}
.......
.......
/// <summary>
/// 传入输入参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param></param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeInParam(string ParamName, OleDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
} ........
........
/// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeParam(string ParamName, OleDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
OleDbParameter param; if(Size > 0)
param = new OleDbParameter(ParamName, DbType, Size);
else
param = new OleDbParameter(ParamName, DbType); param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value; return param;
}Ym1.aspx
Ym1.aspx.cs
private void Button1_Click(object sender, System.EventArgs e)
{
string strbh=this.TxtBh.Text.Trim();
string strname=this.TxtName.Text.Trim();
string strjob=this.TxtJob.Text.Trim();
}; OleDbParameter[] parameter = {
data1.MakeInParam("NumZZZ001",OleDbType.VarChar,2,strbh.ToString()),
data1.MakeInParam("NumZZZ002",OleDbType.VarChar,3,strname.ToString()),
data1.MakeInParam("NumZZZ003",OleDbType.VarChar,6,strjob.ToString())
};
try
{
data1.RunProc("PRC_ZZ01",parameter); //运行到这里出错了啊
}
catch(Exception Err)
{
Response.Write(Err);
}
finally
{
data1 = null;
} }
Test.cs
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName, OleDbParameter[] prams)
{
OleDbCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
return (int)cmd.Parameters["ReturnValue"].Value;
}
....... /// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeParam(string ParamName, OleDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
OleDbParameter param; if(Size > 0)
param = new OleDbParameter(ParamName, DbType, Size);
else
param = new OleDbParameter(ParamName, DbType); param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value; return param;
}
.......
.......
/// <summary>
/// 传入输入参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param></param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeInParam(string ParamName, OleDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
} ........
........
/// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeParam(string ParamName, OleDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
OleDbParameter param; if(Size > 0)
param = new OleDbParameter(ParamName, DbType, Size);
else
param = new OleDbParameter(ParamName, DbType); param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value; return param;
}Ym1.aspx
Ym1.aspx.cs
private void Button1_Click(object sender, System.EventArgs e)
{
string strbh=this.TxtBh.Text.Trim();
string strname=this.TxtName.Text.Trim();
string strjob=this.TxtJob.Text.Trim();
}; OleDbParameter[] parameter = {
data1.MakeInParam("NumZZZ001",OleDbType.VarChar,2,strbh.ToString()),
data1.MakeInParam("NumZZZ002",OleDbType.VarChar,3,strname.ToString()),
data1.MakeInParam("NumZZZ003",OleDbType.VarChar,6,strjob.ToString())
};
try
{
data1.RunProc("PRC_ZZ01",parameter); //运行到这里出错了啊
}
catch(Exception Err)
{
Response.Write(Err);
}
finally
{
data1 = null;
} }
解决方案 »
- String与string 的区别…………
- C#TreeView右键直接删除节点
- 学ASP。net的“被”winform去了,以后会怎样。
- WinForm程序,运行在专业服务器上如何优化?
- type.gettype总返回null,实在是不知道怎么回事
- .net
- 关于apriori算法问题
- 爬虫应该如何监控目标网页的改版?
- 周围的人走的越来越多了,我有点动心了!
- 哪位仁兄救救我,请将VS.NET Beta2 1CD中的\Program Files\Microsoft Visual Studio.NET\Common7\tools\deloyment下的光盘内容拷给我!!
- 求救——反射机制怎么运用?
- c#调用存储过程出错
SQL里是要加@
CREATE OR REPLACE PROCEDURE PRC_ZZ01
(
/*
配置表口径
*/
NumZZZ001 varchar2,
NumZZZ002 varchar2,
NumZZZ003 varchar2
)
AS
Begin
INSERT INTO ZZ01 VALUES(NumZZZ001,NumZZZ002,NumZZZ003);
commit;End PRC_ZZ01;
1、如错误介绍一样,你传入的参数和你语句中参数的顺序不同,或者树木不一致。
2、名字过长,oracle要求列名<32字符(起这么长名字的人也够变态的)
3、在声明中 new OracleParameter(PARM_NAME........) 其中PARM_NAME中不需要包含语句中的":"(补充一下,包含一般也不会有错误)以上就是一般情况的分析,还有几种特殊的情况:比如数据类型的问题,比如你小子没事干在后面多加了一个空格
param.Value = Value;
return param;
自己解决了,谢谢大家的帮助