C# test if SqlDataAdapter contains records

50 views Asked by At

I use ADO and new to C#.

This source shows records have been read whether successful or not. Works well if record/s found, never shows MessageBox.Show("No Records")

public static void readSqlData(String sSource)
{
    string strSelection = "SELECT * FROM " + sSource;

    SqlDataAdapter da = new SqlDataAdapter(strSelection, cnn);

    if (da != null)
    {
        MessageBox.Show("Records have been read");

        dt = new DataTable();
        da.Fill(dt);
    }
    else
    {
        MessageBox.Show("No records \n" + strSelection);
    }
}

I have searched for "Test if SqlDataAdapter is empty". I don't understand the answers. Sorry, to easily confused.

2

There are 2 answers

1
jepozdemir On BEST ANSWER

Check whether datatable rows count higher from zero or not.

public static void readSqlData(String sSource)
{
            string strSelection = "SELECT * FROM " + sSource;
            SqlDataAdapter da = new SqlDataAdapter(strSelection, cnn);
            DataTable dt = new DataTable();
            da.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                MessageBox.Show("Records have been read");
            }
            else
            {
                MessageBox.Show("No records \n" + strSelection);
            }
}
0
jmcilhinney On

This is an example of why you need to read the documentation. If you had done that then you'd know that the Fill method returns the number of records retrieved.

if (myDataAdapter.Fill(myDataTable) > 0)
{
    // At least one record was retrieved.
}
else
{
    // No records were retrieved.
}