(EventCalendar)gridviewr如何用datatable绑定数据?

kehua668 2011-04-20 03:57:26
身边有个有关日程的源代码(控件EventCalendar),写的方法很简单,只是显示对应gridview的日期事项,
其中有个gridview,是用datatable自建的数据,如下,

private DataTable GetEvents()
{
DataTable dt = new DataTable();
dt.Columns.Add("EventDate",Type.GetType("System.DateTime"));
dt.Columns.Add("EventHeader",Type.GetType("System.String"));
dt.Columns.Add("EventDescription",Type.GetType("System.String"));
DataRow dr;
// Last Week's Events
dr = dt.NewRow();
dr["EventDate"] = DateTime.Now.AddDays(-7);
dr["EventHeader"] = "My Last Week's Event 1";
dr["EventDescription"] = "My Last Week's Event 1 Description";
dt.Rows.Add(dr);
// Yesterday's Events
dr = dt.NewRow();
dr["EventDate"] = DateTime.Now.AddDays(-1);
dr["EventHeader"] = "My Yesterday's Event 1";
dr["EventDescription"] = "My Yesterday's Event 1 Description";
dt.Rows.Add(dr);
......
return dt;
}


现在,我要从数据库里读出的话,应该怎写?(一定要datatable的方法)
一般我都是用三层方法写的,
1. public static IList<EModel> E_total(string d1, string d2, string dq, string bm, string name,string ja)
{
SQLHelper hrsqlhelp = new SQLHelper();
SqlParameter[] par = {hrsqlhelp.CreateInParam("@d1", SqlDbType.VarChar, 50,d1),
hrsqlhelp.CreateInParam("@d2", SqlDbType.VarChar, 50, d2),
..... hrsqlhelp.CreateInParam("@ja", SqlDbType.VarChar, 10,ja)
};
SqlDataReader dr = null;
try
{
hrsqlhelp.RunProc("E_total", par, out dr);
}
catch (Exception ex)
{
SystemError.CreateErrorLog(ex.Message);
throw new Exception(ex.Message, ex);
}
List<EModel> list = new List<EModel>();
if (dr.HasRows)
{
while (dr.Read())
{
EModel emodel = new EModel();
emodel.number = dr["number"].ToString();
......
emodel.E_zw = dr["E_zw"].ToString();
emodel.E_zwd = dr["E_zwd"].ToString();

list.Add(emodel);
}
dr.Close();
}
return list;
}
然后再 public void BinData()
{ ...
IList<EModel> list = ESQL.E_total(startime, endtime,dq, bm, name,ja);
GridView1.DataSource = list;

GridView1.DataKeyNames = new string[] { "number" };
GridView1.DataBind();
this.ddlCurrentPage.Items.Clear();
for (int i = 1; i <= this.GridView1.PageCount; i++)
{
this.ddlCurrentPage.Items.Add(i.ToString());
}
if (this.ddlCurrentPage.SelectedIndex == -1)
{
this.Label1.Text = "没有数据!";
}
else
{
this.ddlCurrentPage.SelectedIndex = this.GridView1.PageIndex;
this.Label1.Text = "";
}
}

...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kehua668 2011-04-20
  • 打赏
  • 举报
回复
我这样写对吗
ESQL.cs

public static IList<EModel> Exsl_total()
{
string sql = "select * from E_xsl";
List<EModel> list = new List<EModel>();
DataTable dt = DBHelper.ExecuteGetDataTable(CommandType.Text, sql, null);
foreach (DataRow dr in dt.Rows)
{
EModel emodel = new EModel();
emodel.number = (string)dr["E_number"];
emodel.E_lb = (string)dr["E_lb"];
emodel.E_usern = (string)dr["E_usern"];
emodel.E_unum = (string)dr["E_unum"];
emodel.E_d1 = (string)dr["E_d1"];
emodel.E_t = (string)dr["E_t"];
//jiamodel.jb_sm = (string)dr["jb_sm"];
list.Add(emodel);
}
return list;
}

aspx.cs

public DataTable GetEvents()
{
DataTable dt = new DataTable();
//name = Session["ryxm"].ToString();
IList<EModel> list = ESQL.Exsl_total();
gvSelectedDateEvents.DataSource = dt;

gvSelectedDateEvents.DataKeyNames = new string[] { "number" };
gvSelectedDateEvents.DataBind();
return dt;
}
云成致雨 2011-04-20
  • 打赏
  • 举报
回复

DataTable dd=new DataTable();

while (dr.Read())
{
DataRow row = dd.NewRow();
row["字段"]=dr["number"].ToString();
row["字段2"] = dr["number2"].ToString();

}

return dd;

kehua668 2011-04-20
  • 打赏
  • 举报
回复
每人回吗?
kehua668 2011-04-20
  • 打赏
  • 举报
回复
那个记录日程安排的日历控件源代码下载地址:
http://www.codesoso.com/code/EventCalendar.aspx

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧