Don't do that.
Please, stop relying on strings. When you do this:
dr["TotalMarks"] = dr["socialmarks"].ToString() + dr["MathsMarks"].ToString() + dr["ScienceMarks"].ToString();
It performs string concatenation - so if the social marks are 17, the maths maths are 42 and the Science marks are 36, then the total marks will become "174236" - and dividing that by 3 is not going to produce a "reasonable" average! The situation becomes even worse if the marks aren't integers, because you end up trying to divide "17.042.036.0" by three and that makes no sense to anyone!
Instead, store your values in their native format: integers in integer fields, doubles in double columns, dates in DateTime columns, and so forth. That way, the storage all sorts itself out.
int socialMarks = marks1.Next(50, 100);
int mathsMarks = marks2.Next(50, 100);
int scienceMarks = marks3.Next(50, 100);
int totalMarks = socialMarks + mathsMarks + scienceMarks;
dr["SocialMarks"] = socialMarks;
dr["MathsMarks"] = mathsMarks;
dr["ScienceMarks"] = scienceMarks;
dr["TotalMarks"] = totalMarks;
dr["AverageMarks"] = (double) totalmarks / 3.0;