C# 根据用户值创建多个INSERT语句
当用户将学校班级添加到系统中时,他们会选择班级的开始和结束日期。我已经解决了如何计算这是多少天,并将其存储在我的数据库表'Class'中的'TotalDayNumber'列中 当前,当用户添加一个类时,它只向数据库中插入一行,但我希望为每个单独的日期“TotalDayNumber”添加相同数量的行 例如,如果开始日期为2017年3月1日-2017年3月15日-总天数为14天,那么我想创建14行来表示每一天。”下面是我的插入查询。我想我需要一个IF语句,但我甚至不知道如何开始C# 根据用户值创建多个INSERT语句,c#,date,if-statement,C#,Date,If Statement,当用户将学校班级添加到系统中时,他们会选择班级的开始和结束日期。我已经解决了如何计算这是多少天,并将其存储在我的数据库表'Class'中的'TotalDayNumber'列中 当前,当用户添加一个类时,它只向数据库中插入一行,但我希望为每个单独的日期“TotalDayNumber”添加相同数量的行 例如,如果开始日期为2017年3月1日-2017年3月15日-总天数为14天,那么我想创建14行来表示每一天。”下面是我的插入查询。我想我需要一个IF语句,但我甚至不知道如何开始 protected
protected void insertbutton_Click(object sender, EventArgs e)
{
int? recurrencedata = Convert.ToInt32(ddlRecurrence.Text);
if (recurrencedata == 1)
{
int moduledata = Convert.ToInt32(ddlModule.Text);
DateTime startdatedata = Convert.ToDateTime(txtstartdate.Text);
DateTime enddatedata = Convert.ToDateTime(txtenddate.Text);
int classtypedata = Convert.ToInt32(ddlClassType.Text);
int roomcodedata = Convert.ToInt32(ddlRoomCode.Text);
int starttimedata = Convert.ToInt32(ddlStartClassTime.Text);
int endtimedata = Convert.ToInt32(ddlEndClassTime.Text);
startdatedata = DateTime.Parse(txtstartdate.Text).Date;
enddatedata = DateTime.Parse(txtenddate.Text).Date;
TimeSpan totaldays = enddatedata - startdatedata;
// This is rounding the TimeSpan to the day value only
string totalday = ((int)Math.Round(totaldays.TotalDays, MidpointRounding.AwayFromZero)).ToString();
string DefaultConnection = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
SqlConnection myConnection = new SqlConnection(DefaultConnection);
myConnection.Open();
string query = "INSERT INTO Class (ModuleId, ClassTypeId, ClassScheduleStartTimeId, ClassScheduleEndTimeId, RoomCodeId, StartTime, EndTime, RecurrenceId, TotalDayNumber) VALUES ( @moduledata, @classtypedata, @starttimedata, @endtimedata, @roomcodedata, @startdatedata, @enddatedata, @recurrencedata, @totaldaynumberdata)";
SqlCommand myCommand = new SqlCommand(query, myConnection);
myCommand.Parameters.AddWithValue("@moduledata", moduledata);
myCommand.Parameters.AddWithValue("@classtypedata", classtypedata);
myCommand.Parameters.AddWithValue("@startdatedata", startdatedata);
myCommand.Parameters.AddWithValue("@enddatedata", enddatedata);
myCommand.Parameters.AddWithValue("@starttimedata", starttimedata);
myCommand.Parameters.AddWithValue("@roomcodedata", roomcodedata);
myCommand.Parameters.AddWithValue("@endtimedata", endtimedata);
myCommand.Parameters.AddWithValue("@recurrencedata", recurrencedata);
myCommand.Parameters.AddWithValue("@totaldaynumberdata", totalday);
myCommand.ExecuteNonQuery();
myConnection.Close();
SuccessPanel.Visible = true;
}
}将总天数设为
int
,然后为循环添加insert命令,如下所示
// add for loop
for(int i =0; i <= totalday; i++)
{
myConnection.Open();
string query = "INSERT INTO Class (ModuleId, ClassTypeId, ClassScheduleStartTimeId, ClassScheduleEndTimeId, RoomCodeId, StartTime, EndTime, RecurrenceId, TotalDayNumber) VALUES ( @moduledata, @classtypedata, @starttimedata, @endtimedata, @roomcodedata, @startdatedata, @enddatedata, @recurrencedata, @totaldaynumberdata)";
SqlCommand myCommand = new SqlCommand(query, myConnection);
myCommand.Parameters.AddWithValue("@moduledata", moduledata);
myCommand.Parameters.AddWithValue("@classtypedata", classtypedata);
myCommand.Parameters.AddWithValue("@startdatedata", startdatedata);
myCommand.Parameters.AddWithValue("@enddatedata", enddatedata);
myCommand.Parameters.AddWithValue("@starttimedata", starttimedata);
myCommand.Parameters.AddWithValue("@roomcodedata", roomcodedata);
myCommand.Parameters.AddWithValue("@endtimedata", endtimedata);
myCommand.Parameters.AddWithValue("@recurrencedata", recurrencedata);
myCommand.Parameters.AddWithValue("@totaldaynumberdata", totalday);
myCommand.ExecuteNonQuery();
myConnection.Close();
}
//为循环添加
对于(int i=0;i