/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString,params OracleParameter[] cmdParms)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, connection, null,SQLString, cmdParms);
using( OracleDataAdapter da = new OracleDataAdapter(cmd) )
{
DataSet ds = new DataSet();
try
{
da.Fill(ds,"ds");
cmd.Parameters.Clear();
}
catch(System.Data.OracleClient.OracleException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
}
大家看上段代码,动软生成的,我参数传的都正确,在数据库中可以取到值。但为什么DATASET返回NULL呢,我是两个参数,一个字符型的,一个日期时间型的。
但不调试下看看,应该问题不难找,调试到public static DataSet Query(string SQLString,params OracleParameter[] cmdParms)
的时候,看下cmdParms是不是有问题;如果没问题就继续执行,注意 da.Fill(ds,"ds");会不会出错,主要问题集中在传参和执行上。