将 Bootstrap 多日期值输入多个 SQL 记录
Input Bootstrap Multidate Value to Several SQL Records
我目前正在构建 ASP.NET C# MVC 应用程序。我打算在 html 表单中使用 bootstrap datepicker multidate 来让用户 select 多个日期(假期)。问题是日期选择器在一个输入字段中写入多个日期并以逗号分隔(例如:2016-10-10、2016-11-10、2016-13-10)。我想知道如何为数据库中的一条记录编写这些日期,以及像这样重复输入的其他输入形式(姓名、地址等):
这是我的模型:
public class LeaveApp
{
[Key]
public int LvId { get; set; }
public string LvAppId { get; set; }
public int EmpId { get; set; }
public DateTime LvDate { get; set; }
public string LvPeriod { get; set; }
public string LvDesc { get; set; }
}
我的控制器 post 进入数据库:
[HttpPost]
public ActionResult Create(/*[Bind(Include = "EmpId,LvAppId,LvPeriod,LvStartDate,LvEndDate,LvDesc,LvCount")]*/ LeaveApplicationViewModels leave)
{
if (leave != null)
{
var a = leave.B.LvAppId;
var b = leave.B.EmpId;
var c = leave.B.LvDate.ToString("yyyy-MM-dd");
var e = leave.B.LvPeriod;
var f = leave.B.LvDesc;
//Value.ToString("yyyy-MM-dd HH:mm:ss")
ViewBag.RowsAffected = db.Database.ExecuteSqlCommand("insert into LeaveApps (LvAppId, EmpId, LvDate, LvPeriod,LvDesc)"+
" values ({0}, {1},{2},{3}, {4})",
"LV0022",b,c, e,f);
}
return RedirectToAction("Index");
}
还有我的 html 使用日期选择器的表单:
<div class='input-group date' id="datetimepicker">
@Html.TextBoxFor(model => model.B.LvDate, new { Id = "lv_start_date", @Class = "form-control input-sm" })
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker').datepicker({
format: "dd/mm/yyyy",
multidate: 5,
maxViewMode: 1,
multidateSeparator: ",",
orientation: "bottom left",
keyboardNavigation: false,
clearBtn: true,
daysOfWeekDisabled: "0,6",
startDate: new Date()
});
谢谢你的帮助,
如果您只想在 LeaveApps table 中记录一条记录,但有多个日期,我建议您为 LeavAppDates 创建一个单独的 Table,它将 link 按 EmpId。
然后将员工数据插入到休假应用程序中,在日期列表上进行逗号分隔,然后循环遍历日期并将具有该 EmpId 的日期插入到新的 LeavsAppDates 中。
否则
我首先将从日期选择器中获取的字符串转换为逗号分隔列表
var datePickerDateList =leave.B.LvDate.Split(',').Select(i => DateTime.Parse(i)).ToList();
下一步将是像 Felipe Deguch 提到的那样遍历列表
var rowsAffected = 0;
foreach(var date in datePickerDateList)
{
var a = leave.B.LvAppId;
var b = leave.B.EmpId;
var c = date.ToString("yyyy-MM-dd");
var e = leave.B.LvPeriod;
var f = leave.B.LvDesc;
//Value.ToString("yyyy-MM-dd HH:mm:ss")
db.Database.ExecuteSqlCommand("insert into LeaveApps (LvAppId, EmpId, LvDate, LvPeriod,LvDesc)"+
" values ({0}, {1},{2},{3}, {4})",
"LV0022",b,c, e,f);
rowsAffected++;
}
ViewBag.RowsAffected = rowsAffected;
我目前正在构建 ASP.NET C# MVC 应用程序。我打算在 html 表单中使用 bootstrap datepicker multidate 来让用户 select 多个日期(假期)。问题是日期选择器在一个输入字段中写入多个日期并以逗号分隔(例如:2016-10-10、2016-11-10、2016-13-10)。我想知道如何为数据库中的一条记录编写这些日期,以及像这样重复输入的其他输入形式(姓名、地址等):
这是我的模型:
public class LeaveApp
{
[Key]
public int LvId { get; set; }
public string LvAppId { get; set; }
public int EmpId { get; set; }
public DateTime LvDate { get; set; }
public string LvPeriod { get; set; }
public string LvDesc { get; set; }
}
我的控制器 post 进入数据库:
[HttpPost]
public ActionResult Create(/*[Bind(Include = "EmpId,LvAppId,LvPeriod,LvStartDate,LvEndDate,LvDesc,LvCount")]*/ LeaveApplicationViewModels leave)
{
if (leave != null)
{
var a = leave.B.LvAppId;
var b = leave.B.EmpId;
var c = leave.B.LvDate.ToString("yyyy-MM-dd");
var e = leave.B.LvPeriod;
var f = leave.B.LvDesc;
//Value.ToString("yyyy-MM-dd HH:mm:ss")
ViewBag.RowsAffected = db.Database.ExecuteSqlCommand("insert into LeaveApps (LvAppId, EmpId, LvDate, LvPeriod,LvDesc)"+
" values ({0}, {1},{2},{3}, {4})",
"LV0022",b,c, e,f);
}
return RedirectToAction("Index");
}
还有我的 html 使用日期选择器的表单:
<div class='input-group date' id="datetimepicker">
@Html.TextBoxFor(model => model.B.LvDate, new { Id = "lv_start_date", @Class = "form-control input-sm" })
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker').datepicker({
format: "dd/mm/yyyy",
multidate: 5,
maxViewMode: 1,
multidateSeparator: ",",
orientation: "bottom left",
keyboardNavigation: false,
clearBtn: true,
daysOfWeekDisabled: "0,6",
startDate: new Date()
});
谢谢你的帮助,
如果您只想在 LeaveApps table 中记录一条记录,但有多个日期,我建议您为 LeavAppDates 创建一个单独的 Table,它将 link 按 EmpId。
然后将员工数据插入到休假应用程序中,在日期列表上进行逗号分隔,然后循环遍历日期并将具有该 EmpId 的日期插入到新的 LeavsAppDates 中。
否则
我首先将从日期选择器中获取的字符串转换为逗号分隔列表
var datePickerDateList =leave.B.LvDate.Split(',').Select(i => DateTime.Parse(i)).ToList();
下一步将是像 Felipe Deguch 提到的那样遍历列表
var rowsAffected = 0;
foreach(var date in datePickerDateList)
{
var a = leave.B.LvAppId;
var b = leave.B.EmpId;
var c = date.ToString("yyyy-MM-dd");
var e = leave.B.LvPeriod;
var f = leave.B.LvDesc;
//Value.ToString("yyyy-MM-dd HH:mm:ss")
db.Database.ExecuteSqlCommand("insert into LeaveApps (LvAppId, EmpId, LvDate, LvPeriod,LvDesc)"+
" values ({0}, {1},{2},{3}, {4})",
"LV0022",b,c, e,f);
rowsAffected++;
}
ViewBag.RowsAffected = rowsAffected;