【发布时间】:2011-02-03 17:51:17
【问题描述】:
在 Asp.net C# 中,我使用以下代码从 MySql 数据库中进行选择:
string userid = "12";
MySqlCommand mysqlcmd = new MySqlCommand("SELECT productid FROM table WHERE userid=?userid", mysqlconn);
mysqlcmd.Parameters.AddWithValue("?userid", userid);
mysqlcmd.Connection.Open();
mysqlcmd.ExecuteReader();
...
在表中,用户 ID 是 int 类型。如果我在 userid 的表中有一个索引,这个查询会发生什么,即使我添加到参数的 userid 是字符串并且表中的索引是 int,它是否能够以一种好的方式使用索引?
在将 userid 添加到参数之前,它会给我更好的性能吗?将 userid 转换为 int,如下所示:
int userid_int = Int32.Parse(userid);
MySqlParameter param = new MySqlParameter("?userid", MySqlDbType.Int32);
param.Value = userid_int;
cmd.Parameters.Add(param);
或者只用可以吗:
mysqlcmd.Parameters.AddWithValue("?userid", userid);
【问题讨论】:
-
@The Scrum Meister 所以据我了解,使用 AddWithValue() 是可以的,因为它会自动为我设置正确的参数类型?