Как конвертировать использование SQLite в простую команду SQL в C # - PullRequest
0 голосов
/ 04 апреля 2010

Я хочу начать с контроля DayPilot Я не использую SQLite, и этот элемент управления задокументирован на основе SQLite.

Я хочу использовать SQL вместо SQLite, поэтому, если вы можете, сделайте это для меня.

основной сайт с образцами http://www.daypilot.org/calendar-tutorial.html

База данных содержит одну таблицу со следующей структурой

CREATE TABLE event (  id VARCHAR(50),  name VARCHAR(50),  eventstart DATETIME,  eventend DATETIME);

Загрузка событий

  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["db"].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();
    }
  }

Ответы [ 2 ]

1 голос
/ 04 апреля 2010

вместо

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();
    }
}

Вы должны быть в состоянии использовать

private void dbUpdateEvent(string id, DateTime start, DateTime end)    {
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
   {
    con.Open();
    SqlCommand cmd = new SqlCommand("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();
    }
}

Вам также нужно добавить; ссылка на проект System.Data и using System.Data.SqlClient в верхней части класса.

1 голос
/ 04 апреля 2010

вы можете создать свою базу данных на сервере sql, после чего вам нужно только изменить SQLiteCommand на SQLCommand. вам не нужно ничего менять, кроме информации о строке подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...