如何解决列'empID'不属于表?



我的sql数据库中有一个Employee表,该表包含emp_Idemp_namemanager_Id。我正试图将所有emp_name作为LIST,并将它们放在ComboBox中,这里是我的sql语句:

string sql = "SELECT emp_name FROM Employee";

这就是我将它们放入LIST 的方式

public static List<T> GetList<T>(DataTable dt)
where T : IPopulateColumns, new()
{
List<T> TList = new List<T>();
foreach (DataRow dr in dt.Rows)
{
T t1 = new T();
t1.PopulateColumns(dr);
TList.Add(t1);
}
return TList;

这里是Employee类中的PopulateColumes方法:我在类中有empId、empNamemanagerID的字段和属性名称。

public void PopulateColumns(DataRow dr)
{
this.empId = (int)dr["EmpId"];
this.empName = dr["EmpName"].ToString();
this.managerId = dr["ManagerID"].ToString();
}

我收到一个错误,上面写着">Columnn'EmpId'不属于表

由于我没有您提供的完整代码,我建议您使用以下代码

获取所有的emp_name作为LIST,并将它们添加为组合框的数据源。

代码:

private void Form1_Load(object sender, EventArgs e)
{
string connstring = @"";
SqlConnection connection = new SqlConnection(connstring);
connection.Open();
string sql = "SELECT emp_name FROM Employee";
SqlCommand command = new SqlCommand(sql, connection);
DataSet set = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(set);
var result = set.Tables[0].AsEnumerable().Select(i=>i.Field<string>("emp_name")).ToList();
comboBox1.DataSource = result;
}

最新更新