Doesn't make sense to use a DataSet as a binding source, and then to "Dispose" it.
if (ddlLoan != null)
{
ddlLoan.DataSource = ds2;
ddlLoan.DataTextField = "Loan_number_display";
ddlLoan.DataValueField = "Loan_number_display";
ddlLoan.Items.Insert(0, new ListItem("Select"));
ddlLoan.DataBind();
}
da2.Dispose();
ds2.Dispose();