使用Oracle 11g,引用Oracle.DataAccess库。
在WCF中定义一个服务BureauService ,其有一个Insert接口,调试时,运行到“pParm[0] = new OracleParameter("BUREAUID", OracleDbType.Varchar2);”就报如下错:“Oracle.DataAccess.Client.OracleParameter”的类型初始值设定项引发异常。[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class BureauService : IBureauService//服务的实现
{
//向数据库中加入一个单位信息
//输入:name---单位名称
public void Insert(string name)
{
OracleParameter[] pParm = new OracleParameter[3];
pParm[0] = new OracleParameter("BUREAUID", OracleDbType.Varchar2);//单位的UUID
pParm[0].Direction = ParameterDirection.Input;
string uuid = System.Guid.NewGuid().ToString();
pParm[0].Value = uuid; pParm[1] = new OracleParameter("name", OracleDbType.Varchar2); //单位名称
pParm[1].Direction = ParameterDirection.Input;
pParm[1].Value = name; pParm[2] = new OracleParameter("result", OracleDbType.Int16);//返回值
pParm[2].Direction = ParameterDirection.ReturnValue; CDatabaseUntil pDbUntil = new CDatabaseUntil();
pDbUntil.ExecuteNonQuery("dog_insertTable.insertSingle_plan_bureau", CommandType.StoredProcedure, pParm);//将单位的基本数据传入到数据库中 int outValue = Convert.ToInt16(pParm[2].Value);
if (outValue == 0) //上传失败
return;
}
在WCF中定义一个服务BureauService ,其有一个Insert接口,调试时,运行到“pParm[0] = new OracleParameter("BUREAUID", OracleDbType.Varchar2);”就报如下错:“Oracle.DataAccess.Client.OracleParameter”的类型初始值设定项引发异常。[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class BureauService : IBureauService//服务的实现
{
//向数据库中加入一个单位信息
//输入:name---单位名称
public void Insert(string name)
{
OracleParameter[] pParm = new OracleParameter[3];
pParm[0] = new OracleParameter("BUREAUID", OracleDbType.Varchar2);//单位的UUID
pParm[0].Direction = ParameterDirection.Input;
string uuid = System.Guid.NewGuid().ToString();
pParm[0].Value = uuid; pParm[1] = new OracleParameter("name", OracleDbType.Varchar2); //单位名称
pParm[1].Direction = ParameterDirection.Input;
pParm[1].Value = name; pParm[2] = new OracleParameter("result", OracleDbType.Int16);//返回值
pParm[2].Direction = ParameterDirection.ReturnValue; CDatabaseUntil pDbUntil = new CDatabaseUntil();
pDbUntil.ExecuteNonQuery("dog_insertTable.insertSingle_plan_bureau", CommandType.StoredProcedure, pParm);//将单位的基本数据传入到数据库中 int outValue = Convert.ToInt16(pParm[2].Value);
if (outValue == 0) //上传失败
return;
}
解决方案 »
- c程序问题
- public All<Money> getIn2010(Work harder):base(2009){}
- 郁闷到家了,明明在MSDN里有的WMI方法,在.net中却无法使用
- object方法问题 菜鸟求助~~~~~~~~~~~~
- 怎么将一些文本存成一个htm的文件并作为邮件的附件发送??急啊!!!
- 如何取得一个属性的类型
- C#winform窗口显示问题
- WCF,服务配置中的host元素是啥意思?
- C# KeyDown KeyUp 事件 怎么写
- 谁能写出数字0-9之间,而且限定为2个数字的正则表达式(在线等待ing)
- winform 窗体用的GridControl控件,求相关操作属性
- 请问如何即时更新datagridview的datarow
OracleCommand com = new OracleCommand(sql, con);
com.Parameters.Add(new OracleParameter(":id", OracleType.VarChar,20));
com.Parameters[":id"].Value = id;
com.Parameters.Add(new OracleParameter(":pwd", OracleType.VarChar, 20));
com.Parameters[":pwd"].Value = pwd;
pParm[0] = new OracleParameter("BUREAUID", OracleDbType.Varchar2);//单位的UUID
pParm[0].Direction = ParameterDirection.Input;
string uuid = System.Guid.NewGuid().ToString();
pParm[0].Value = uuid;
代码来产生参数表?
那个位置的代码完全正确,因此不可能是代码问题,这个还需要实际环境调试才行,或者你的错误断点没有找对。TO 楼上,不存在OracleType.VarChar枚举。请注意楼主的前提“使用Oracle 11g,引用Oracle.DataAccess库。”