0

ここに画像の説明を入力

このチュートリアルhttp://www.daypilot.org/calendar-tutorial.htmlに従おうとしています。データベースのデータを使用するカレンダーを作成したいと考えています。チュートリアルと同じイベントとデータというテーブルを既に作成しています。テーブル名は event と呼ばれ、その中には id、name、eventstart、eventend、および resource の 5 つのフィールドがあります。

しかし、データベースに .mdf を使用しています。また、チュートリアルではデータベースに sqlite を使用しています。また、sqlite データベースを使用していないため、コードにエラーがあります。データベースに .mdf を使用したいのですが、コードを変更するにはどうすればよいですか?

public partial class number2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        lblVenue.Text = Session["roomvalue"] != null ? Session["roomvalue"].ToString() : "";

        if (!IsPostBack)
        {
            DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstDayOfWeek(new DateTime(2009, 1, 1));
            DayPilotCalendar1.DataSource = dbGetEvents(DayPilotCalendar1.StartDate, DayPilotCalendar1.Days);
            DataBind();
        }
    }
    protected void DayPilotCalendar1_EventMove(object sender, DayPilot.Web.Ui.Events.EventMoveEventArgs e)
    {
        dbUpdateEvent(e.Value, e.NewStart, e.NewEnd);
        DayPilotCalendar1.DataSource = dbGetEvents(DayPilotCalendar1.StartDate, DayPilotCalendar1.Days);
        DayPilotCalendar1.DataBind();
        DayPilotCalendar1.Update();
    }

        private DataTable dbGetEvents(DateTime start, int days)
    {
        SQLiteDataAdapter da = new SQLiteDataAdapter("SELECT [id], [name], [eventstart], [eventend] FROM [event] WHERE NOT (([eventend] <= @start) OR ([eventstart] >= @end))", ConfigurationManager.ConnectionStrings["projectConnectionString"].ConnectionString);
        da.SelectCommand.Parameters.AddWithValue("start", start);
        da.SelectCommand.Parameters.AddWithValue("end", start.AddDays(days));
        DataTable dt = new DataTable();
        da.Fill(dt);
        return dt;
    }

    private void dbUpdateEvent(string id, DateTime start, DateTime end)
    {
        using (SQLiteConnection con = new SQLiteConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
        {
            con.Open();
            SQLiteCommand cmd = new SQLiteCommand("UPDATE [event] SET [eventstart] = @start, [eventend] = @end WHERE [id] = @id", con);
            cmd.Parameters.AddWithValue("id", id);
            cmd.Parameters.AddWithValue("start", start);
            cmd.Parameters.AddWithValue("end", end);
            cmd.ExecuteNonQuery();
        }
    }
}
4

1 に答える 1