我有我需要从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