Estoy realizando una consulta simple a DB y me da el error del título.
Me indica que el error está en el if(reader.Read())
Tengo esto en el aspx:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AdventureWorksConnectionString %>" `
SelectCommand="SELECT [Articulos].[codigo], [Articulos].[descripcion], [Articulos].[precio], [Articulos].[codigoRubro], [Rubros].[descripcion]
FROM [Articulos] JOIN [Rubros] ON [Articulos].[codigoRubro] = [Rubros].[codigo] WHERE [Articulos].[descripcion]=@descripcion">
<SelectParameters>
<asp:Parameter Name="codigo" />
<asp:Parameter Name="descripcion" />
<asp:Parameter Name="precio" />
<asp:Parameter Name="codigoRubro" />
<asp:Parameter Name="descripcionRubro" />
</SelectParameters>
</asp:SqlDataSource>
y esto en el cs:
try
{
SqlDataSource1.SelectParameters["descripcion"].DefaultValue = txbxArticleName.Text.ToUpper().Trim();
SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataReader;
SqlDataReader reader = (SqlDataReader)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
**if (!reader.Read())
{**
panelResult.Visible = true;
txbxNameResult.Text = reader["descripcion"].ToString().Trim();
txbxCodeResult.Text = reader["codigo"].ToString().Trim();
txbxPriceResult.Text = reader["precio"].ToString().Trim();
txbxProductCodeResult.Text = reader["codigoRubro"].ToString().Trim();
}
Obviamente, esto se debe a que reader
es null
. Por eso, mi pregunta es: ¿por qué es null y cómo puedo solucionarlo?