2009-04-03 26 views
5

Descubrí que en SQL Reporting podría haber un problema. Tengo un ReportViewer en mi página y estoy enviando los parámetros usando el siguiente método:SQL Reporting: Parámetro nulo

List<ReportParameter> myParams = new List<ReportParameter>(); 

myParams.Add(new ReportParameter("Start_Date", StartDate)); 
myParams.Add(new ReportParameter("End_Date", EndDate)); 

ReportViewer1.ServerReport.SetParameters(myParams); 

Esto funciona genial! Pero, cuando intento establecer un parámetro en nulo, después de ejecutar esa consulta, mantiene el valor anterior en lugar de establecerlo como nulo.

que ejecuta este código en otro evento que se ejecuta después de que el código anterior:

List<ReportParameter> myParams = new List<ReportParameter>(); 

myParams.Add(new ReportParameter("Start_Date")); 
// I even tried omiting this line. 
//(This is the null parameter I wish to pass) 
myParams.Add(new ReportParameter("End_Date", EndDate)); 

ReportViewer1.ServerReport.SetParameters(myParams); 

Alguien ha llegado a través de un trabajo en torno o una técnica diferente para conseguir este trabajo?

Además, si inicialmente no defino el parámetro, entonces asigno el parámetro, luego no defino el parámetro, mantiene el valor asignado. (Estas son todas las devoluciones de datos, cada evento)

Respuesta

7

Haga algo como esto ... Lo he probado en mi propio pequeño proyecto de prueba y parece funcionar.

List<ReportParameter> myParams = new List<ReportParameter>(); 

ReportParameter p = new ReportParameter("Start_Date"); 
p.Values.Add(null); 
myParams.Add(p); 

//myParams.Add(new ReportParameter("Start_Date")); 
// I even tried omiting this line. 
//(This is the null parameter I wish to pass) 
myParams.Add(new ReportParameter("End_Date", EndDate)); 

ReportViewer1.ServerReport.SetParameters(myParams); 
+1

Está configurado para permitir nulo. –

+1

Si inicialmente no defino el parámetro, entonces asigno el parámetro, luego no defino el parámetro, mantiene el valor asignado. (Estas son todas las devoluciones de datos, cada evento) –

0

¿Son esas StartDate & variables EndDate del tipo DateTime? Tal vez esto tiene que ver con el hecho de que las variables DateTime no se pueden establecer en nulo, sino que son DateTime.MinValue. Intente configurar el parámetro en DateTime.MinValue y maneje en consecuencia.

+0

No son cadenas y no son fechas en realidad. –

3

Ha intentado llamar:

ReportViewer1.Reset(); 

entre las dos llamadas?

Cuestiones relacionadas