1:
2: //Create a method which verifies if a column exists in a particular row being read by datareader
3: private bool ColumnExists(SqlDataReader reader, string columnName)
4: {
5: reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= '" + columnName + "'";
6: return (reader.GetSchemaTable().DefaultView.Count > 0);
7: }
8: So now ReadData method will look like
9: private Object DataRead(SqlDataReader reader)
10: {
11: //Some Code
12: //
13: if(reader["A"]!=null)
14: string a = reader.GetString("A");
15: if(reader["A"]!=null)
16: string b = reader.GetString("B");
17: if(reader["A"]!=null)
18: string c = reader.GetString("C");
19: //Check only those columns where you have doubts
20: if(ColumnExists(reader, "W"))
21: {
22: if( reader["W"]!=null)
23: string w = reader.GetString("W");
24: }
25: //Some Code
26: //......
27: returns new DemoObject(a,b,c,w);
28: }