3

我已经安装了连接器/NET 6.5.4。在 VisualStutio IntelliSense 中建议了一个名为 MySqlParameterCollection.AddRange 的方法,但是没有可用的文档,所以我不知道如何使用它。我在这里搜索过,一无所获。

如何使用此方法以及文档在哪里?

4

4 回答 4

8

因为 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>());
于 2012-07-17T08:14:51.227 回答
4

你可以这样使用

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 对象

于 2012-07-17T08:13:23.397 回答
3

AddRange通常用于添加值的集合。在这种情况下,我猜它期望你通过一个IEnumerableof 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);
于 2012-07-17T08:12:21.917 回答
1

这是一种避免必须创建变量来保存参数数组的方法

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();
}

一举一动

于 2019-09-10T09:52:55.747 回答