怎样定义OracleParameter的DbType

eHuaTian 2009-11-17 03:17:51
定义了一个数据库操作类,代码如下:
public class databaseUntil
{
private OracleCommand cmd = null;
private OracleConnection conn = null;
private string connstr;//从数据库中读取的连接语句

public databaseUntil()
{
connstr = ConfigurationManager.ConnectionStrings["oracleConnString"].ConnectionString;
}

//建立数据库连接
//返回一个数据库的连接OracleConnection对象
public OracleConnection init()
{
conn = new OracleConnection(connstr);
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
}

//设置OracleCommand对象
//参数:cmd--OracleCommand对象,cmdText--命令文本,cmdType--命令类型,cmdParms--参数集合
private void SetCommand(OracleCommand cmd, string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
{
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
if (cmdParms != null)
{
cmd.Parameters.AddRange(cmdParms);
}
}
}

在c#服务器端调用代码如下:
OracleParameter[] pParm=new OracleParameter[10];

pParm[0].DbType = DbType.String;//项目名称
pParm[0].Direction = ParameterDirection.Input;
pParm[0].ParameterName="Projectname";
pParm[0].Value=projectNameText.Text;

pParm[1].DbType=DbType.String;//建设单位
pParm[1].Direction = ParameterDirection.Input;
pParm[1].ParameterName="BUILDINGCOMPANY";
pParm[1].Value=companyText.Text;

databaseUntil pDbUntil = new databaseUntil();
pDbUntil.init();//先初始化数据库连接
int row=pDbUntil.SetCommand("plan_fliles_upLoad_file", CommandType.StoredProcedure, pParm);//传入到数据库中

在编译运行时,VS2005总是提示:pParm[0].DbType = DbType.String;定义错误。对SetCommand提示,也提示数据参数类型不对,为什么?
...全文
238 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljhcy99 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ehuatian 的回复:]
pParm[0] =("Projectname",OracleType.VarChar); 这句话从语法上不对丫。我程序的开始已经用 OracleParameter[] pParm=new OracleParameter[10]构建了。谢谢
[/Quote]

手误:


pParm[0] =new OracleParameter("Projectname",OracleType.VarChar);
eHuaTian 2009-11-17
  • 打赏
  • 举报
回复
pParm[0] =("Projectname",OracleType.VarChar); 这句话从语法上不对丫。我程序的开始已经用 OracleParameter[] pParm=new OracleParameter[10]构建了。谢谢
ljhcy99 2009-11-17
  • 打赏
  • 举报
回复
在c#服务器端调用代码如下:
OracleParameter[] pParm=new OracleParameter[10];
pParm[0] =("Projectname",OracleType.VarChar);
pParm[0].Direction = ParameterDirection.Input;
pParm[0].Value=projectNameText.Text;

.....其他依次这么构造。

databaseUntil pDbUntil = new databaseUntil();
pDbUntil.init();//先初始化数据库连接
OracleCommand cmd = new OracleCommand(); //这个对象也得传。不然跟你方法都不匹配。

int row=pDbUntil.SetCommand( cmd ,"plan_fliles_upLoad_file", CommandType.StoredProcedure, pParm);


你需要看看C#数组的定义
eHuaTian 2009-11-17
  • 打赏
  • 举报
回复
能不能将我的整个程序修改一下,我刚用C#,谢谢大家了
eHuaTian 2009-11-17
  • 打赏
  • 举报
回复
但是我程序的开始不是已经用 OracleParameter[] pParm=new OracleParameter[10];构造了吗?
ljhcy99 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ljhcy99 的回复:]
引用 1 楼 ehuatian 的回复:
对pParm[0].DbType = DbType.String显示的错误是:“未将对象引用设置到对象的实例。”
那我如果写代码才是正确呢

pParm[0] 这些元素还没有被构造呢,

修改如下:
pParm[0] = new OracleParameter("Projectname",projectNameText.Text,DbType.String,ParameterDirection.Input);
[/Quote]

其他的元素也一样,一个个都用new OracleParameter 构造函数 构造。
ljhcy99 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ehuatian 的回复:]
对pParm[0].DbType = DbType.String显示的错误是:“未将对象引用设置到对象的实例。”
那我如果写代码才是正确呢
[/Quote]
pParm[0] 这些元素还没有被构造呢,

修改如下:
pParm[0] = new OracleParameter("Projectname",projectNameText.Text,DbType.String,ParameterDirection.Input);
沉默味道ron 2009-11-17
  • 打赏
  • 举报
回复
pParm[0].DbType = OracleDbType.String
eHuaTian 2009-11-17
  • 打赏
  • 举报
回复
对pParm[0].DbType = DbType.String显示的错误是:“未将对象引用设置到对象的实例。”
那我如果写代码才是正确呢

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧