如下列处理,写sql语句时,将DateTime类型转换成varchar类型 Convert(varchar,runtime,111)=@date //111 表示斜杠 如1997/01/01 ..还有 110、112等
//获取用户输入条件
string start = this.cboStartStation.Text;
string end = this.cboEnd.Text;
string date = this.dtpStartTime.Value.ToString("yyyy/MM/dd");
//参数化字段
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@start",start),
new SqlParameter("@end",end),
new SqlParameter("@date",Convert.ToDateTime(date))
};
string sql = @"select TrainId, TrainNo, RunTime, StartStation, EndStation, Price, TicketNumber
from Ticket
where Convert(varchar,RunTime,111)=@date ";
if (start != "")
{
sql += "and StartStation=@start ";
}
if (end != "")
{
sql += "and EndStation=@end ";
}
this.dgvTickets.DataSource = SQLHelper.GetDataTable(sql, paras);
数据库中的datetime类型,c#中也转换成datetime类型很重要
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@classinfo",Convert.ToInt32(this.cboClassInfos.SelectedValue)),
new SqlParameter("@studentname",this.txtStudentName.Text.Trim()),
new SqlParameter("@studentsex",sex),
new SqlParameter("@phone",this.txtPhone.Text.Trim()),
new SqlParameter("@birthday",Convert.ToDateTime(this.dtpBirthday.Value))
};