0

次を使用してデータベースにクエリを実行しようとしています。

connection.Query(@"SELECT timestamp FROM hdd_local_data_v1_2 WHERE date = " + 
                                    date.ToString("yyyy-MM-dd") +
                                    " AND measured_dist = bit_loc AND rop > 0")

私の問題は、次のような文字列が生成されることです。

SELECT timestamp FROM hdd_local_data_v1_2 WHERE date = 2012-08-21 AND measured_dist = bit_loc AND rop > 0

このクエリを SQLite で実行すると、結果は 0 になります。ただし、実行すると:

// Quotes around the date
SELECT timestamp FROM hdd_local_data_v1_2 WHERE date = "2012-08-21" AND measured_dist = bit_loc AND rop > 0

期待通りの結果が得られます。以下を使用することで、期待どおりの結果が得られることに気付きました。

connection.Query("SELECT timestamp FROM hdd_local_data_v1_2 WHERE date = \"" + 
                                   date.ToString("yyyy-MM-dd") + 
                                   "\" AND measured_dist = bit_loc AND rop > 0")

私の質問は、エスケープを使用せずに予想されるクエリを取得することは可能\ですか? さらに、接続が確立された後に LINQ を使用してデータベースにクエリを実行する方法はありますか?

4

0 に答える 0