我已经安装了连接器/NET 6.5.4。在 VisualStutio IntelliSense 中建议了一个名为 MySqlParameterCollection.AddRange 的方法,但是没有可用的文档,所以我不知道如何使用它。我在这里搜索过,一无所获。
如何使用此方法以及文档在哪里?
因为 MySqlParameterCollection 派生自 DbParameterCollection,所以您可以查看每个其他 ParameterCollection 的示例。例如,可以以这种方式使用 SqlParameterCollection
SqlCommand cmd = new SqlCommand(pCommandText, GetConnection());
cmd.Parameters.Clear();
List<SqlParameter> list = new List<SqlParameter>();
list.Add(new SqlParameter("@p1", value1));
list.Add(new SqlParameter("@p2", value2));
list.Add(new SqlParameter("@p3", value3));
cmd.Parameters.AddRange(list.ToArray<SqlParameter>());
你可以这样使用
var myp = new MySqlParameterCollection();
myp.Add(new MySqlParameter(parameterName, dbType, size));
或者
MySqlParameter[] myArray = new MySqlParameter[] { new MySqlParameter(parameterName, dbType, size), new MySqlParameter(parameterName, dbType, size));
myp.AddRange(myArray);
现在您可以将它附加到您的 Command 对象
AddRange
通常用于添加值的集合。在这种情况下,我猜它期望你通过一个IEnumerable
of MySqlParameter
。
例如
// List<T> implements IEnumerable
var list = new List<MySqlParameter>();
var paramCol = new MySqlParameterCollection();
// Add parameters to list
// ...
// Assuming param collection set up
paramCol.AddRange(list);
这是一种避免必须创建变量来保存参数数组的方法
using (SqlCommand cm = new SqlCommand(sql, cn))
{
cm.Parameters.AddRange(
new SqlParameter[]
{
new SqlParameter("@TaskID", SqlDbType.Int) { Value = (int)dr["BSTaskID"] },
new SqlParameter("@DateNow", SqlDbType.DateTime) { Value = DateTime.Now } ,
new SqlParameter("@ExecDate", SqlDbType.DateTime) { Value = execDate } ,
new SqlParameter("@UserId", SqlDbType.Int) { Value = (int)dr["BSUserId"] },
new SqlParameter("@TaskParameters", SqlDbType.VarChar) { Value = parametersXML }
});
cm.ExecuteNonQuery();
}
一举一动