目的:通过调用存储过程,在aspx页面显示存储过程返回的数据集。
第一步:
在项目中加一个类文件(.cs),取名为:practice.cs
首先加一个访问sql的引用 using System.Data.SqlClient;
写一个返回DataSet的方法:
//使用sql生成的日历 --公历
public DataSet calendar(string dt)
{
SqlDataAdapter MyAdapter= new SqlDataAdapter();
SqlConnection myConnection = new SqlConnection("server=172.16.3.60;uid=sa;pwd=zhangzs;database=Mytest");
//myConnection.ConnectionTimeout=36000; //连接的超时时间
MyAdapter.SelectCommand = new SqlCommand("calendar", myConnection);
MyAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlParameter pdt = new SqlParameter("@dt", SqlDbType.VarChar, 10);
pdt.Value =dt;
MyAdapter.SelectCommand.Parameters.Add(pdt);
MyAdapter.SelectCommand.CommandTimeout=36000; //查询的超时时间
DataSet ds=new DataSet();
myConnection.Open();
try
{
MyAdapter.Fill(ds);
return ds;
}
finally
{
myConnection.Close();
}
}
第二步:
在项目中添加一个aspx页面,我给他取名为:calendar.aspx
设计状态下,拉一个标签、文本框、按钮、DataGrid 分别取名为:My_Lab My_TBox My_Btn MyDataGrid
在calendar.aspx.cs中
private void BindGrid()
{
try
{
string Sdt=My_TBox.Text.Trim();
practice pt=new practice();
DataSet ds=new DataSet();
ds=pt.calendar(Sdt);
MyDataGrid.DataSource=ds;
MyDataGrid.DataBind();}
catch{
Response.Write("<script>window.alert(\"输入有误,请检查.....\");</script>");
}
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
My_TBox.Text=System.DateTime.Now.ToString("yyyy/MM/dd");
BindGrid();
}
}
private void My_Btn_Click(object sender, System.EventArgs e)
{
BindGrid();
}
//寻找一个值,改变这个值所在单元格的背景颜色,为了显眼
private void MyDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
for(int i=1;i<e.Item.Cells.Count;i++)
{
if(AddAtrr(e.Item.Cells[i].Text))
{
e.Item.Cells[i].BackColor =System.Drawing.Color.Red;
e.Item.Cells[i].Text ="√"+e.Item.Cells[i].Text;
}
}
}
}
private bool AddAtrr(string nowDate)
{
if(nowDate==My_TBox.Text.Trim())
return true;
else
return false;
}
--效果图:
第一步:
在项目中加一个类文件(.cs),取名为:practice.cs
首先加一个访问sql的引用 using System.Data.SqlClient;
写一个返回DataSet的方法:
//使用sql生成的日历 --公历
public DataSet calendar(string dt)
{
SqlDataAdapter MyAdapter= new SqlDataAdapter();
SqlConnection myConnection = new SqlConnection("server=172.16.3.60;uid=sa;pwd=zhangzs;database=Mytest");
//myConnection.ConnectionTimeout=36000; //连接的超时时间
MyAdapter.SelectCommand = new SqlCommand("calendar", myConnection);
MyAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlParameter pdt = new SqlParameter("@dt", SqlDbType.VarChar, 10);
pdt.Value =dt;
MyAdapter.SelectCommand.Parameters.Add(pdt);
MyAdapter.SelectCommand.CommandTimeout=36000; //查询的超时时间
DataSet ds=new DataSet();
myConnection.Open();
try
{
MyAdapter.Fill(ds);
return ds;
}
finally
{
myConnection.Close();
}
}
第二步:
在项目中添加一个aspx页面,我给他取名为:calendar.aspx
设计状态下,拉一个标签、文本框、按钮、DataGrid 分别取名为:My_Lab My_TBox My_Btn MyDataGrid
在calendar.aspx.cs中
private void BindGrid()
{
try
{
string Sdt=My_TBox.Text.Trim();
practice pt=new practice();
DataSet ds=new DataSet();
ds=pt.calendar(Sdt);
MyDataGrid.DataSource=ds;
MyDataGrid.DataBind();}
catch{
Response.Write("<script>window.alert(\"输入有误,请检查.....\");</script>");
}
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
My_TBox.Text=System.DateTime.Now.ToString("yyyy/MM/dd");
BindGrid();
}
}
private void My_Btn_Click(object sender, System.EventArgs e)
{
BindGrid();
}
//寻找一个值,改变这个值所在单元格的背景颜色,为了显眼
private void MyDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
for(int i=1;i<e.Item.Cells.Count;i++)
{
if(AddAtrr(e.Item.Cells[i].Text))
{
e.Item.Cells[i].BackColor =System.Drawing.Color.Red;
e.Item.Cells[i].Text ="√"+e.Item.Cells[i].Text;
}
}
}
}
private bool AddAtrr(string nowDate)
{
if(nowDate==My_TBox.Text.Trim())
return true;
else
return false;
}
--效果图: