Вы не возвращаете столбец с именем _Deptid
в своем выражении SQL.
Ваш оператор SQL должен читать:
select _program.Name, _program._Deptid
from _program,_Department
where _program._Deptid = _Department._DeptId
Как отметил пользователь Stackoverflow, с помощью оператора using
это автоматически избавится от ваших объектов. Другое дело, что вы делаете:
if (dt.Rows.Count == 0)
но у вас нет кода внутри. Независимо от того, делаете вы это в своем коде или нет, но если вы намереваетесь оставить его пустым, было бы целесообразно сделать следующее:
if (dt.Rows.Count > 0)
{
DropDownList.DataTextField = "Name";
DropDownList.DataValueField = "_DeptID";
DropDownList.DataSource = dt.DefaultView;
DropDownList.DataBind();
}