下面程序不能编译!!系统提示错误:
“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;
}
“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;
}
================
没有问题MyADO.OleDBOperator.GetDataSetArgs(string, string[])”: 没有找到适合的方法来重写
public override DataSet GetDataSetArgs(string sql, string [] args)
==============================================
GetDataSetArgs 在基类中怎么声明的
--------------->>
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语句了!
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";
public override DataSet GetDataSetArgs(string sql, string [] args) 编译通不过!
------------------->>
系统提示错误:
“MyADO.OleDBOperator.GetDataSetArgs(string, string[])”: 没有找到适合的方法来重写.
================
没有问题MyADO.OleDBOperator.GetDataSetArgs(string, string[])”: 没有找到适合的方法来重写
public override DataSet GetDataSetArgs(string sql, string [] args)
==============================================
GetDataSetArgs 在基类中怎么声明的
基类中必须有一个同样的
public virtual DataSet GetDataSetArgs(string sql, string [] args)
虚拟方法,override的概念是重写这个方法
override重写的方法是有多态的
hdt(倦怠)问了你两遍了
GetDataSetArgs 在基类中怎么声明的???
为什么不回答?
贴出的代码没有问题,是基类的问题!
还是viena表达能力比较强,一下就点出了问题的实质
中.
把override 去掉.
改为:
public DataSet GetDataSetArgs(string sql, string [] args)