You can serlielise dataset and chechk no of bytes used.
But why you required this?
public static int GetDataLength(DataTable dt)
{
DataSet ds= new DataSet();
ds.Tables.Add(dt);
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
byte[] Array;
bf.Serialize(ms, ds);
Array = ms.ToArray();
return Array.Length;
}