One way you could accomplish this is to use the Paint() event to check the rows and if there are none, then write your message:
private void dataGridView1_Paint ( object sender, PaintEventArgs e )
{
DataGridView sndr = ( DataGridView )sender;
if ( sndr.Rows.Count == 0 )
{
using ( Graphics grfx = e.Graphics )
{
grfx.FillRectangle ( Brushes.White, new Rectangle ( new Point (), new Size ( sndr.Width, 25 ) ) );
grfx.DrawString ( "No data returned", new Font ( "Arial", 12 ), Brushes.Black, new PointF ( 3, 3 ) );
}
}
}