What you're currently doing...
object s = new object();
s = mydatarow["mycolumn"];
This isn't a good idea, because the first line creates a new object, and then the second line throws away that object and replaces it with the value from the "mycolumn" column in the DataRow. This doesn't really hurt much, except that it creates extra work for the garbage collector for no good reason. Instead of that, you should do this:
object s = mydatarow["mycolumn"];
However, if you happen to know that "mycolumn" contains a string value, you can instead do this:
string s = (string)mydatarow["mycolumn"];
Likewise, if "mycolumn" is an integer column...
int x = (int)mydatarow["mycolumn"];
Under no circumstances should you do the following, because it simply doesn't make any sense, and the framework is nice enough to tell you that the "mycolumn" value in your DataRow is not, in fact, another DataRow.
DataRow r = null;
r = mydatarow["mycolumn"];