如何填充(写入)数据列到列表<>?

how to fill (write) datacolumn to list<>?

我正在尝试获取一个包含值的数据列(已填充数据 table)并将其写入访问层中存在的自动 属性。目前,我使用的方法是从 sql 获取数据并将值传递给 gird。我正在尝试使用该方法并已填充 datatable 但问题是,auto 属性 仅读取列名,结果我在另一个控件(列表框)中获取列名。下面是我在BLL中的方法。

DAL d = new DAL();

public Object getfeechallan(Bal B) 
{
sqlcommand cmd = new sqlcommand("select * from tblfee where fee_challan_No like @abc,d.con");
cmd.parameters.addwithvalue("@abc","%"+b.fee_challan_No+"%");
datatable dt=d.getdatafilter(cmd);
foreach(datacolumn dd in dt.columns)
{
if(dd.columnname=="ftid")
{
list<DataColumn> dc = new list<DataColumn>();
dc.Add(dd);
b.abc=dc;
}

} return dt;


}

我在DAL中的方法是

public Datatable getdatafilter(SqlCommand CMD)
{
SqlDataAdapter da = new SqlDataAdapter(CMD);
Datatable dt = new Datatable ();
da.Fill(dt);
return dt;
}

自动 属性 是

public list<DataColumn> abc {get; set;}

如果您正在尝试获取包含特定列中所有值的列表 你不能只引用该列 您需要循环该列的所有行

List<object> values = new List<object>();
for(int i = 0; i < dt.Rows.Count(); i++)
{
    values.Add(dt[i]["columnName"]);
}

好的..所以下面应该这样做。

public DataTable getfeechallan(Bal b)
    {
        SqlDataAdapter sdb = new SqlDataAdapter("Select count(*) From reserve", con);
        DataTable dt = new DataTable();
        List<string> dc = new List<string>();

        sdb.Fill(dt);

        foreach (DataRow dd in dt.Rows)
        {
           dc.Add(dd["ftid"].ToString());
        }

        Bal.abc = dc;

        return dt;
    }

另一个观察。除非你需要数据表 returning,否则将 return 类型更改为 "void"。我假设您需要的所有数据现在都在 "Bal" 对象中。