Answered by:
SqlDataReader

Question
-
User-797751191 posted
Hi
I want sdr.read() should be executed if there is record else it should give message
using (SqlDataReader sdr = cmd.ExecuteReader()) { sdr.Read(); txtStoreAddress.Text = sdr["Address0"].ToString() + " " + sdr["Address1"].ToString(); txtStoreCity.Text = sdr["City"].ToString(); txtStorePostCode.Text = sdr["PostCode"].ToString(); }
Thanks
Wednesday, July 17, 2019 7:49 AM
Answers
-
User-821857111 posted
using (SqlDataReader sdr = cmd.ExecuteReader()) { if(sdr.HasRows) { sdr.Read(); txtStoreAddress.Text = sdr["Address0"].ToString() + " " + sdr["Address1"].ToString(); txtStoreCity.Text = sdr["City"].ToString(); txtStorePostCode.Text = sdr["PostCode"].ToString(); } else { // no records } }
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Wednesday, July 17, 2019 7:56 AM -
User753101303 posted
Hi,
You can use https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqldatareader.hasrows?view=netframework-4.8 to test if a DataReader returned at least one row :
using (SqlDataReader sdr = cmd.ExecuteReader()) { if (sdr.HasRows()) { sdr.Read(); txtStoreAddress.Text = sdr["Address0"].ToString() + " " + sdr["Address1"].ToString(); txtStoreCity.Text = sdr["City"].ToString(); txtStorePostCode.Text = sdr["PostCode"].ToString(); } else // Whatever }
Not directly related but if using Web Forms 4.5 or later I would suggest to have a look at https://docs.microsoft.com/en-us/aspnet/web-forms/overview/presenting-and-managing-data/model-binding/retrieving-data.
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Wednesday, July 17, 2019 7:58 AM -
User-821857111 posted
HasRows is a property, not a method. Remove the () after it:
HasRows
, notHasRows()
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Wednesday, July 17, 2019 9:46 AM
All replies
-
User-821857111 posted
using (SqlDataReader sdr = cmd.ExecuteReader()) { if(sdr.HasRows) { sdr.Read(); txtStoreAddress.Text = sdr["Address0"].ToString() + " " + sdr["Address1"].ToString(); txtStoreCity.Text = sdr["City"].ToString(); txtStorePostCode.Text = sdr["PostCode"].ToString(); } else { // no records } }
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Wednesday, July 17, 2019 7:56 AM -
User753101303 posted
Hi,
You can use https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqldatareader.hasrows?view=netframework-4.8 to test if a DataReader returned at least one row :
using (SqlDataReader sdr = cmd.ExecuteReader()) { if (sdr.HasRows()) { sdr.Read(); txtStoreAddress.Text = sdr["Address0"].ToString() + " " + sdr["Address1"].ToString(); txtStoreCity.Text = sdr["City"].ToString(); txtStorePostCode.Text = sdr["PostCode"].ToString(); } else // Whatever }
Not directly related but if using Web Forms 4.5 or later I would suggest to have a look at https://docs.microsoft.com/en-us/aspnet/web-forms/overview/presenting-and-managing-data/model-binding/retrieving-data.
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Wednesday, July 17, 2019 7:58 AM -
User-797751191 posted
Hi
It is giving me below error
Error 54 Non-invocable member 'System.Data.Common.DbDataReader.HasRows' cannot be used like a method.Thanks
Wednesday, July 17, 2019 8:51 AM -
User-821857111 posted
HasRows is a property, not a method. Remove the () after it:
HasRows
, notHasRows()
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Wednesday, July 17, 2019 9:46 AM -
User-797751191 posted
Hi
It is showing HasRows = true but still it is giving error Invalid attempt to read when no data is present
using (SqlDataReader sdr = cmd.ExecuteReader()) { if (sdr.HasRows) { Session["InvoiceNo"] = sdr["InvoiceNo"].ToString(); } }
Thanks
Wednesday, July 17, 2019 10:26 AM -
User-797751191 posted
sdr.read was not written
Thanks
Wednesday, July 17, 2019 10:30 AM