我有我需要從SQLite數據庫選擇用兩個字符串查詢數據庫得到的值的方法。這些字符串被傳遞給方法,並在方法內部進行一些字符串連接以構建SQLiteCommand.CommandText
。令我驚訝的是,即使使用字符串連接,並且儘管每個人都說參數化查詢比使用字符串連接更快,但當我在方法外參數化此查詢並僅將值分配給方法本身中的參數時,它運行速度會更慢3ms相比7/8ms)...我做錯了什麼或這是正常的?
外我有以下代碼的方法:
ComandoBD = new SQLiteCommand(@"SELECT Something FROM SomeTable WHERE (Field1 = @TextField1 AND Field2 = @TextField2)", LigacaoBD);
。
裏面的方法,我只是寫
ComandoBD.AddWithValue("@TextField1", StringWithValue1);
ComandoBD.AddWithValue("@TextField2", StringWithValue2);
奇怪的是,這個運行速度更快: ComandoBD.CommandText = "SELECT Something FROM SomeTable WHERE (Field1 = '" + StringWithValue1 + "' AND TextField2 = '" + StringWithValue2 + "')";
非常感謝你。
沒有看到代碼就不可能知道您是否做錯了什麼。 – mikerobi 2010-10-29 22:07:03
發佈您的代碼。 – Rory 2010-10-29 22:07:49
非常感謝。我已經發布了它。 – Miguel 2010-10-29 22:16:55