我正在尝试获取一个带有值的数据列(已填入数据表)并将其写入访问层中的自动属性中。目前,我使用的方法是从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;}
答案 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;对象