Daypilot을 사용하여 마스터 로타를 만듭니다.Daypilot - SQL Server에서 약속 가져 오기
현재 데이터베이스에 약속을 저장하고 있지만 특정 날짜에 대한 모든 약속을 검색하고 날짜와 관련이없는 달력에 표시하려고합니다.
E.G 월요일에 작성된 모든 약속은 DATE의 날짜와 관계없이 항상 월요일에 표시되어야합니다.
현재 선택
public DataTable GetAssignmentsForLocation(DayPilotCalendar calendar)
{
DataTable dt = new DataTable();
var da = CreateDataAdapter("select * from [master_rota] where [LocationId] = @location and Week = @Week");
AddParameterWithValue(da.SelectCommand, "location", (int)calendar.ClientState["location"]);
AddParameterWithValue(da.SelectCommand, "week", (int)calendar.ClientState["week"]);
da.Fill(dt);
return dt;
}
그리고
protected void DayPilotCalendar1_Command(object sender, CommandEventArgs e)
{
switch (e.Command)
{
case "navigate":
var start = (DateTime)e.Data["start"];
DayPilotCalendar1.StartDate = start;
DayPilotCalendar1.DataSource = new DataManager_MasterRota().GetAssignmentsForLocation(DayPilotCalendar1);
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update();
break;
case "refresh":
DayPilotCalendar1.DataSource = new DataManager_MasterRota().GetAssignmentsForLocation(DayPilotCalendar1);
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update();
break;
case "day":
DayPilotCalendar1.ViewType = ViewTypeEnum.Day;
DayPilotCalendar1.StartDate = (DateTime)e.Data["date"];
DayPilotCalendar1.DataSource = new DataManager_MasterRota().GetAssignmentsForLocation(DayPilotCalendar1);
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update();
break;
case "week":
DayPilotCalendar1.ViewType = ViewTypeEnum.Week;
DayPilotCalendar1.DataSource = new DataManager_MasterRota().GetAssignmentsForLocation(DayPilotCalendar1);
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update();
break;
}
}
창조
public void CreateAssignment(DateTime start, DateTime end, int location, int week, int person, string note, DayOfWeek day)
{
using (DbConnection con = CreateConnection())
{
con.Open();
// string id = "";
var cmd = CreateCommand("insert into [master_rota] ([AssignmentStart], [AssignmentEnd], [LocationId], [PersonId], [AssignmentNote], week, day) values (@start, @end, @location, @person, @note, @Week, @day)", con);
AddParameterWithValue(cmd, "start", start);
AddParameterWithValue(cmd, "end", end);
AddParameterWithValue(cmd, "location", location);
AddParameterWithValue(cmd, "week", week);
AddParameterWithValue(cmd, "person", person);
AddParameterWithValue(cmd, "note", note);
AddParameterWithValue(cmd, "day", day);
cmd.ExecuteScalar();
}
}
데이터베이스 항목 : 그것은 할 수 있어야 이론적 있도록 데이터베이스가 각 항목에 대한 일을 기록하고 주어진 날짜 값에 대한 모든 값로드
는 예컨대 "1 일"에 대한 모든 항목은 모두
달력은 다음과 같은 날짜의 관련성, 월요일에 표시되어야합니다. 날이 약속이 제대로 달력에로드 있도록 누군가가 select 문을 구축 저를 도와 주 시겠어요
일치하는 경우 항상 약속을로드해야합니다 당신은 표시에는 날짜가없는 볼 수 있듯이? 화요일 등 월요일, 일 2 EG의 1 일 약속 ....
당신은 바인딩하여 매개 변수 내@
을 추가해야
캘린더를 채우는 코드가 표시되지 않았습니까? 이제 DataTable을 채우는 것입니다. –
이 지금 추가되었습니다. –
그냥 INSERT 일뿐입니다. 데이터 테이블을 달력에 할당하는 데 사용하는 코드는 무엇입니까? –