【发布时间】:2017-03-14 11:41:12
【问题描述】:
我正在尝试获取带有值的数据列(已填充数据表)并将其写入访问层中存在的自动属性中。目前,我使用的方法是从 sql 中获取数据并将值传递给网格。我正在尝试使用该方法并且已经填充了数据表,但问题是,自动属性仅读取列名,因此我在另一个控件(列表框)中获取列名。以下是我在 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;}
【问题讨论】:
-
当您说“带有值的数据列”时,请问您到底是什么意思?你是说添加到列表时并不是所有的数据列属性都设置好了?
-
我的意思是我想将包含在这个名为 'ftid' 的特定列中的值复制到列表中..
-
这样我们就清楚了。您想要实际的数据列吗?不是数据表行中的数据?数据列正是如此。数据表上的列集合。它们具有名称、数据类型和长度等属性。
-
是的,只有一列的数据
-
仔细查看您的代码...除了在找到所需列后继续循环遍历所有列...我看不出有任何问题。将列表分配下的“return dt”移动到“Bal”对象,以便在您找到 col“ftid”后立即退出,如果那是您想要的唯一 col。顺便说一句,当您在分配给“Bal”的列表中查看该列时,该列中缺少哪个值。
标签: c# sql asp.net n-tier-architecture