如何填写(写)datacolumn到列表<>?

时间:2017-03-14 11:41:12

标签: c# sql asp.net n-tier-architecture

我正在尝试获取一个带有值的数据列(已填入数据表)并将其写入访问层中的自动属性中。目前,我使用的方法是从sql获取数据并将值传递给gird。我试图使用该方法,并已填充数据,但问题是,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;}

2 个答案:

答案 0 :(得分:0)

如果您尝试获取包含特定列中所有值的列表 你不能只是参考专栏 你需要循环该列的所有行

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

答案 1 :(得分:0)

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

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;
    }

另一个观察结果。除非您需要返回数据表,否则请将返回类型更改为&#34; void&#34;。我认为你需要的所有数据现在都在&#34; Bal&#34;对象