执行存储过程可以返回table,并且返回的table中也有数据,但是绑定到前台中只能显示列标题,没有数据,这是怎么回事?下面的代码是问题中是的代码
代码一:点击按钮
protected void btn_cx_Click(object sender, EventArgs e)
{
string yymc = txt_yymc.Text.Trim().ToString();
string kssj = txt_kssj.Text.Trim().ToString() + " 00:00:00.000";
string jssj = txt_jssj.Text.Trim().ToString() + " 23:59:59.000";
try
{
DataTable dt = new DataTable();
CenterBaseBLL.gysxx gys = new CenterBaseBLL.gysxx();
dt = gys.GetAll(yymc, kssj, jssj);
if (dt != null && dt.Rows.Count > 0)
{
gysxx.DataSource = dt;
gysxx.DataBind();
}
else
{
}
}
catch
{
}
}
代码二:BLL中的代码
public DataTable GetAll(string yymc, string kssj, string jssj)
{
DataTable table = new DataTable();
try
{
CenterBaseDAL.ExecuteProcedure exec = new CenterBaseDAL.ExecuteProcedure();
SqlParameter[] sqlp = {
new SqlParameter("@yymc",yymc),
new SqlParameter("@kssj",kssj),
new SqlParameter("@jssj",jssj),
};
int falg = exec.run(table, "HJY_GYL_GHSXX", sqlp);
if (falg == 1)
{
}
else
{
this.ErrorMessage = exec.ErrorMessage.ToString();
}
}
catch (Exception e)
{
this.ErrorMessage = e.Message.ToString();
}
return table;
}
代码三:DAL中的代码
public int run(DataTable table, string sprocName, SqlParameter[] parameters)
{
Debug.Assert(sproc == null);
sproc = new StoredProcedure(sprocName, parameters);
int flag = sproc.Run(table);
this.ErrorMessage = sproc.ErrorMessage;
sproc.Dispose();
return flag;
}
代码四:前台页面列绑定代码
<Columns>
<asp:BoundField HeaderText="医院名称" DataField="yymc" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" />
<asp:BoundField HeaderText="供应商名称" DataField="gysmc" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" />
<asp:BoundField HeaderText="供应商分类" DataField="gysfl" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" />
<asp:BoundField HeaderText="上月采购金额" DataField="syxsje" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" />
</Columns>
以上是代码片段,用到的代码全贴出来了。下面的图片是前台点击按钮后实现的效果图:
如图,在点击“查询”后只能显示列标题,数据显示不出来,
求大神指点!!
在线等!!!!!