Перевод кода SQL в формат Razor - PullRequest
0 голосов
/ 03 марта 2012

Я пытаюсь перевести некоторый старый код C #, чтобы использовать способ доступа к базам данных через WebMatrix, но я изо всех сил. Может кто-нибудь помочь мне?

    private static string connectionString = "Data Source=ASHIT\\SQLEXPRESS;Initial Catalog=amit;Integrated Security=True";

    public static List<Item> method(DateTime start, DateTime end)
    {

        List<Item> events = new List<Item>();
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand("SELECT event_id, description, title, event_start, event_end FROM event where event_start>=@start AND event_end<=@end", con);
        cmd.Parameters.AddWithValue("@start", start);
        cmd.Parameters.AddWithValue("@end", end);

        using (con)
        {
            con.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                //perform functions
            }
        }
        return events;
    }

Пока у меня так много, и я не могу пройти дальше строки "Использование" - куда мне идти дальше?

public static List<Item> method(DateTime start, DateTime end)
    {

        List<Item> events = new List<Item>();
        var db = Database.Open("plan");
        var result = db.Query("SELECT event_id, description, title, event_start, event_end FROM event where event_start>= "+ start + " AND event_end<= "+ @end);
    //not sure what to do from here
        using (con)
        {
            con.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                //perform functions
            }
        }
        return events;
    }

1 Ответ

1 голос
/ 03 марта 2012

Я никогда не использовал помощников по базам данных WebMatrix, но, основываясь на документации, вы должны быть в состоянии сделать что-то вроде:

foreach(var record in result)
{
    // Perform functions
}

Снова глядя на документы, похоже, что db.Query вернет IEnumerable<Object>, поэтому приведенный выше код не будет работать, если вы не измените его на (только C # 4):

IEnumerable<dynamic> result = db.Query("SELECT event_id, description, title, event_start, event_end FROM event where event_start>= "+ start + " AND event_end<= "+ @end);

Это может быть необязательно на примере здесь .

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