下面程序不能编译!!系统提示错误:
“MyADO.OleDBOperator.GetDataSetArgs(string, string[])”: 没有找到适合的方法来重写.这个问题应该怎么解决!!我想通过传参数来进行数据查询!不用每次都写一长行SQL语句!希望高手帮忙解决!
-------------------------------->>          /// <summary>
        /// 获取GetDataSetArgs
        /// </summary>
        /// <param name="sql">带格式SQL语句</param>
        /// <param name="args">参数数据</param>
        /// <returns>GetDataSetArgs</returns>
        public override DataSet GetDataSetArgs(string sql, string [] args)
        {
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = this._conn;
            if (isTransaction)
            {
                cmd.Transaction = this._trans;
            }
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter();
            cmd.CommandText = string.Format(sql,args);;
            da.SelectCommand = cmd;
            try
            {
                da.Fill(ds);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return null;
            }            return ds;
        }

解决方案 »

  1.   

    string.Format(sql,args);;是错误的,建议楼主查下MSDN
      

  2.   

    string.Format(sql,args);
    ================
    没有问题MyADO.OleDBOperator.GetDataSetArgs(string, string[])”: 没有找到适合的方法来重写
    public override DataSet GetDataSetArgs(string sql, string [] args)
    ==============================================
    GetDataSetArgs 在基类中怎么声明的
      

  3.   

    cmd.CommandText = string.Format(sql,args);;不知道你有什么用 请你说明一下
      

  4.   

    用的:String.Format (String, Object[]) 方法!!我没怎么用过string []!大家指点呀!
      

  5.   

    !!我想通过传参数来进行数据查询!不用每次都写一长行SQL语句!
    --------------->>
    string sql = "INSERT INTO [user](ID,name) VALUES({0},'{1}')";
                System.Data.SqlClient.SqlCommand cmd = objConnection.CreateCommand();
                cmd.CommandText = string.Format(sql, id,name);
                cmd.ExecuteNonQuery();
    --------------->>
    不过我想通过string.Format()传数组参数!就可以任意使用SQL语句了!
      

  6.   

    string.Format example
    string str = "select * from table id={0} and name={1} ";
    string[] args = new string[2]{"1","pfworld"};
    string result = string.Format( str , args );
    =====>
    result is "select * from table id=1 and name=pfworld";
      

  7.   

    hdt(倦怠) 不是那里的错误!!
    public override DataSet GetDataSetArgs(string sql, string [] args) 编译通不过!
    ------------------->>
    系统提示错误:
    “MyADO.OleDBOperator.GetDataSetArgs(string, string[])”: 没有找到适合的方法来重写.
      

  8.   

    是不是string sql, string [] args 两者冲突??
      

  9.   

    string.Format(sql,args);
    ================
    没有问题MyADO.OleDBOperator.GetDataSetArgs(string, string[])”: 没有找到适合的方法来重写
    public override DataSet GetDataSetArgs(string sql, string [] args)
    ==============================================
    GetDataSetArgs 在基类中怎么声明的
      

  10.   

    楼主明白override是什么意思吗?
    基类中必须有一个同样的
    public virtual DataSet GetDataSetArgs(string sql, string [] args)
    虚拟方法,override的概念是重写这个方法
      

  11.   

    或者基类中此方法本身就是override的,也可以重写
    override重写的方法是有多态的
      

  12.   

    楼主,
    hdt(倦怠)问了你两遍了
    GetDataSetArgs 在基类中怎么声明的???
    为什么不回答?
    贴出的代码没有问题,是基类的问题!
      

  13.   

    呵呵
    还是viena表达能力比较强,一下就点出了问题的实质
      

  14.   

    搞定!!原来是基类问题!!没注意!!这个方法是新添加的!!谢谢hdt(倦怠) !!
      

  15.   

    public override DataSet GetDataSetArgs(string sql, string [] args)
    中.
    把override 去掉.
    改为:
    public DataSet GetDataSetArgs(string sql, string [] args)