定义了一个数据库操作类,代码如下:
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提示,也提示数据参数类型不对,为什么?

解决方案 »

  1.   

    对pParm[0].DbType = DbType.String显示的错误是:“未将对象引用设置到对象的实例。”
    那我如果写代码才是正确呢
      

  2.   

    pParm[0].DbType = OracleDbType.String
      

  3.   

    pParm[0] 这些元素还没有被构造呢,修改如下:
    pParm[0] = new OracleParameter("Projectname",projectNameText.Text,DbType.String,ParameterDirection.Input);
      

  4.   


    其他的元素也一样,一个个都用new OracleParameter 构造函数 构造。
     
      

  5.   

    但是我程序的开始不是已经用 OracleParameter[] pParm=new OracleParameter[10];构造了吗?
      

  6.   

    在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#数组的定义
      

  7.   

    pParm[0] =("Projectname",OracleType.VarChar); 这句话从语法上不对丫。我程序的开始已经用 OracleParameter[] pParm=new OracleParameter[10]构建了。谢谢
      

  8.   


    手误:
    pParm[0] =new OracleParameter("Projectname",OracleType.VarChar);