First your databind code is confusing. It may be like below
l
SqlCommand cmd = new SqlCommand("select ID,Name from Machine_Area", con);
DataTable dt=new DataTable();
con.Open()
using(con)
{
dt.Load(cmd.ExecuteReader());
}
listAll.DataSource=dt;
listAll.DataTextField = dr["Name"].ToString();
listAll.DataValueField = dr["ID"].ToString();
then you can get the listAll SelectedValue as
DataRowView drv=(DataRowView)listAll.SelectedItem;
int selectedVal=Convert.ToInt32(drv["ID"]);
string selectedText=drv["Name"].ToString();