//这是界面层 checkBox
private void cB_toilet_CheckedChanged(object sender, EventArgs e)
{
if (cB_toilet.Checked == true)
{
bool toilet = true;
if (dGV_roomCheck.DataSource != null)
{
dGV_roomCheck.DataSource = null;
dGV_roomCheck.DataSource = mybo.checkAdsl(toilet);
}
else
{
dGV_roomCheck.DataSource = mybo.checkAdsl(toilet);
}
}
}
//这是业务逻辑层
internal object checkAdsl(bool adsl)
{
return mydb.checkAdsl(adsl);
}
//这是数据访问层
internal object checkAdsl(bool adsl)
{
cmd.CommandText = "select * from roomInfo where haveADSL=@adsl";
//cmd.Parameters.AddWithValue("@toilet", toilet);
//cmd.Parameters.AddWithValue("@tel", tel);
cmd.Parameters.AddWithValue("@adsl", adsl);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
//这是数据访问层
internal object checkAdsl(bool adsl)
{
cmd.CommandText = "select * from roomInfo where haveADSL=@adsl";
//cmd.Parameters.AddWithValue("@toilet", toilet);
//cmd.Parameters.AddWithValue("@tel", tel);
cmd.Parameters.AddWithValue("@adsl", adsl);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}数据访问层你用的是object而在业务逻辑层你并没有转换为DataSet包括表示层都没有。试试这样:(或者数据访问层直接返回DataSet)//这是业务逻辑层
internal DataSet checkAdsl(bool adsl)
{
return (DataSet)mydb.checkAdsl(adsl);
}
internal dataTable checkAdsl(bool adsl)
{
return mydb.checkAdsl(adsl);
}
//这是数据访问层
internal datatable checkAdsl(bool adsl)
{
cmd.CommandText = "select * from roomInfo where haveADSL=@adsl";
//cmd.Parameters.AddWithValue("@toilet", toilet);
//cmd.Parameters.AddWithValue("@tel", tel);
cmd.Parameters.AddWithValue("@adsl", adsl);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
还在表示层处理DataSet的问题。
那你就在数据层改为用ds呀