2012-03-03 5 views
0

データベースにアクセスするWebMatrixの方法を古いC#コードに変換しようとしていますが、苦労しています。誰かが私を助けてくれますか?SQLコードをRazor形式に変換する

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>[email protected] AND event_end<[email protected]", 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

私は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); 

hereの例では、これは必要でない場合があります。

+0

ありがとう、私は今このコードを試してみます - 非常に便利です! :) –

+0

うれしい私は助けることができます。それが機能する場合は、それを答えとしてマークすることを忘れないでください。 –