将SQL代码转换为Razor格式

本文关键字:Razor 格式 转换 SQL 代码 | 更新日期: 2023-09-27 18:26:26

我正试图将一些旧的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;
    }

将SQL代码转换为Razor格式

我从未使用过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);

基于这里的示例,这可能不是必要的。