三个控件的id分别是:年year1,月month1,日day1.
(1)首先在cs文件中添加3个自定义函数
void BindYear()// 自定义函数,用来绑定年份
{
year1.Items.Clear();//存在年份的话,清除掉
int start = System.DateTime.Now.Year - 10;//起始年份
int end = System.DateTime.Now.Year;//终止年份
for (int i = start; i <= end; i++)
{
year1.Items.Add(i.ToString());//添加一年
}
year1.SelectedValue = System.DateTime.Now.Year.ToString();
year1.DataBind();
}
void BindMonth()
{
month1.Items.Clear();
for (int i = 1; i <= 12; i++)
{
month1.Items.Add(i.ToString());
}
month1.DataBind();
}
void BindDay()
{
day1.Items.Clear();
string syear = year1.SelectedValue;
string smonth = month1.SelectedValue;
int days = System.DateTime.DaysInMonth(int.Parse(syear), int.Parse(smonth));
for (int i = 1; i <= days; i++)
day1.Items.Add(i.ToString());
day1.DataBind();
}
(2)在Page_Load函数中添加
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
BindYear();
BindMonth();
BindDay();
}
}
(1) 日要根据年和月的变化,而发生改变,要分别添加year1和month1的SelectedIndexChanged事件处理程序。
private void month1_SelectedIndexChanged(object sender, System.EventArgs e)
{
BindDay();
}
private void year1_SelectedIndexChanged(object sender, System.EventArgs e)
{
BindDay();
}
(5)最后要设置year1和month1列表框的AutoPostBack属性为true
单击“写入按钮”的代码:
private void Button1_Click(object sender, System.EventArgs e)
{
int syear = int.Parse(year1.SelectedValue) ;//读取年year1下拉列表框中选定的值
int smonth = int.Parse(month1.SelectedValue); //读取年month1下拉列表框中选定的值
int sday =int.Parse( day1.SelectedValue); //读取年day1下拉列表框中选定的值
DateTime dt = new DateTime(syear, smonth, sday);//将年月日合并起来转化成日期类型
string strsql="insert into tab values('"+dt.ToString()+"')";
SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=;database=das");
SqlCommand comm=new SqlCommand(strsql,conn);
conn.Open();
int i=comm.ExecuteNonQuery();
if(i>0)
Response.Write("写入成功!");
else
Response.Write("失败!");
conn.Close();
}
从数据库中将数据读出,然后在列表框中显示出来。
private void Button1_Click(object sender, System.EventArgs e)
{
string str=Request.Form["txt_code"];//要读出数据的code值
string strsql="select * from tab where code='"+str+"'";
SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=;database=das");
SqlCommand comm=new SqlCommand(strsql,conn);
SqlDataReader dr=null;
conn.Open();
dr=comm.ExecuteReader();
if(dr.Read())
{
string bir=dr[0].ToString();//位于数据库中的第一列
DateTime dat = DateTime.Parse(bir);//将该数据转换成DateTime类型的
year1.SelectedValue = dat.Year.ToString().Trim();
month1.SelectedValue = dat.Month.ToString();
day1.SelectedValue = dat.Day.ToString();
Response.Write("读出成功!");
}
else
Response.Write("失败!");
conn.Close();
}