Many suggestion to avoiding error.
Drp.DataSources= ds;
Rather then binding whole dataset to Drp. just bind the specific table inside.
Like
ds.Tables["sometablename"];
Drp.DataTextField = ds.Tables[0].Rows[i]["Empsap"].ToString();
Drp.DataValueField = ds.Tables[0].Rows[i]["Empsap"].ToString();
Here you just need to assign specific table column name rather then dynamic row value data.<clear>
For Example are if you're sure that table have column, suppose "Fees" then bind it with.
Drp.DataTextField = "Fees";
Same holds true for DataValueField.
And If you aren't sure with the column name, then just fetch column name from table Like
Drp.DataTextField = dt.Tables[0].Columns[2].ColumnName
Please
vote and
Accept Answer if it Helped.