actually, you are almost forced to use them. But I like to stay away from GridView and DataSet. Use a DataList. Basically, just create the page you want to and bind your data to the DataList, then just add the datalist tags above and below the beggining and end of your code. Since you only have one record showing, you have no worries about repeating to break your code. Just make sure you only have one record showing! Otherwise, one of the crappiest ways to do it is bind them all to labels and literals. Labels put everthing targeted to the label in a label info tag. Literals just output the information. Depending on how much information you have, just use ExecuteScalar() to retrieve your record and set it equal to a string, then bind the string to the Literal/Label.
strOutputInfo = commandSelectInfo.ExecuteScalar()
labelnameorliteralname.Text = strOutputInfo & "your other info here"
Else, just create your page and try to put all your data in a table, regardless of how many tables inside that table they exist. (This prevents breaking code incase of errors). THen just put your code like this:
<asp:Datalist ID="dlOutputInfo" runat="server">
<ItemTemplate>
<table>
<tr>
<td>......<%# DataBinder.Eval(Container.DataItem, strOutputInfo) %>......</td>
</tr>
</table>
</ItemTemplate>
</asp:Datalist>
Your best bet is to retrieve all the info in one SQL query if possible and just using one datalist near the begining and end it near the end of the page. Then just fill in the DataItems.
I can help, but you need to post your code, otherwise I am throwing bricks in a pond trying to knock out a fish.