C# 学生可以每6个月申请一张票
我有一个小项目,说学生可以每6个月申请一张票,这是我写的代码,我会把我面临的问题联系起来C# 学生可以每6个月申请一张票,c#,sql-server,C#,Sql Server,我有一个小项目,说学生可以每6个月申请一张票,这是我写的代码,我会把我面临的问题联系起来 using (var Con = new SqlConnection(@"Data Source = root\SQLEXPRESS; Initial Catalog =Log-In; Integrated Security = True")) { Con.Open(); var table = "INSERT INTO Student(us
using (var Con = new SqlConnection(@"Data Source = root\SQLEXPRESS; Initial Catalog =Log-In; Integrated Security = True"))
{
Con.Open();
var table = "INSERT INTO Student(username,DepartureCiry,ArrivalCity,DateOfDeparture,DateOfReturn)VALUES(@username,@DepartureCiry,@ArrivalCity,@DateOfDeparture,@DateOfReturn)";
using (var cmd = new SqlCommand(table, Con))
{
var newDep = "Select DateOfDeparture from Student where username=@username";
var departValue = new SqlCommand(newDep, Con);
departValue.Parameters.AddWithValue("@username", username);
var dataFromDatabase = Convert.ToDateTime(departValue.ExecuteScalar());
var newStudent = Convert.ToDateTime(date_time_picker.Text);
var diff = (newStudent - dataFromDatabase);
MessageBox.Show(diff.ToString());
if (diff.TotalDays < 180)
{
MessageBox.Show("you exceed you're booking for the last 6 monthes");
}
else
{
MessageBox.Show("request has been sent suckssfully");
}
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@DepartureCiry", fromtxt.Text);
cmd.Parameters.AddWithValue("@ArrivalCity", Totxt.Text);
cmd.Parameters.AddWithValue("@DateOfDeparture", date_time_picker.Text);
cmd.Parameters.AddWithValue("@DateOfReturn", date_time_picker1.Text);
cmd.ExecuteNonQuery();
MessageBox.Show("Data inserted suckssfully");
}
使用(var Con=new SqlConnection(@“Data Source=root\SQLEXPRESS;Initial Catalog=Log-In;Integrated Security=True”))
{
Con.Open();
var table=“插入学生(用户名、部门名称、到达日期、离开日期、返回日期)值(@username、@DepartureCiry、@ArrivalCity、@DateOfDeparture、@DateOfReturn)”;
使用(var cmd=new SqlCommand(table,Con))
{
var newDep=“选择从学生处分离的日期,其中用户名=@username”;
var departValue=newsqlcommand(newDep,Con);
departValue.Parameters.AddWithValue(“@username”,username);
var dataFromDatabase=Convert.ToDateTime(departValue.ExecuteScalar());
var newStudent=Convert.ToDateTime(日期\时间\选择器.Text);
var diff=(newStudent-dataFromDatabase);
Show(diff.ToString());
如果(差异总天数<180)
{
MessageBox.Show(“您超过了过去6个月的预订量”);
}
其他的
{
MessageBox.Show(“请求已完全发送”);
}
cmd.Parameters.AddWithValue(“@username”,username);
cmd.Parameters.AddWithValue(“@DepartureCiry”,fromtxt.Text);
cmd.Parameters.AddWithValue(“@ArrivalCity”,toText.Text);
cmd.Parameters.AddWithValue(“@DateOfDeparture”,date\u time\u picker.Text);
cmd.Parameters.AddWithValue(“@DateOfReturn”,date\u time\u picker1.Text);
cmd.ExecuteNonQuery();
MessageBox.Show(“数据插入失败”);
}
错误:
其他信息:无法将“System.TimeSpan”类型的对象强制转换为“System.IConvertible”类型
虽然你真的应该告诉我们,但我猜这一行出现了异常:
int diffrance = Convert.ToInt32(diff);
您应该完全删除该行,并将if
语句替换为:
if (diff.TotalDays > 180)
旁注:那么你的问题是什么?为什么你尝试过的东西不起作用?@Larnu不,它不起作用请查看代码下面的错误
“糟透了”
是的,我同意这段代码中发生了几次转换,您是否设置了断点并使用调试器进行了调试?您能告诉我们是哪一行导致了错误吗?