Не удается неявно преобразовать тип «System.Collections.Generic.List‹System.Data.SqlClient.SqlParameter›» в «System.Data.SqlClient.SqlParameter»

Для кода:

sqlParameter = parameterSettings.GetParameters<T>(table, config);

Я получаю сообщение об ошибке:

Ошибка 1. Не удается неявно преобразовать тип «System.Collections.Generic.List» в «System.Data.SqlClient.SqlParameter» C:\Users\jonathan.cameron\Documents\Visual Studio 2013\Projects\DataGenerator\DataGenerator\Methods\Query. cs 99 28 Генератор данных

Сигнатура метода для GetParameters:

public List<SqlParameter> GetParameters<T>(T table, Config config)

Остальная часть кода

public int RunInsertQuery<T>(bool returnPrimary, SqlCommand cmd, Config config, 
             ParameterSettings parameterSettings, SqlParameter sqlParameter, 
                T table)
{
        // Used to create an INSERT Query
    Query query = new Query();

        // Pass item that needs to be inserted into SQL
    cmd.CommandText = query.InsertQuery<T>(table, config);
        // If the primary key needs to be returned...
    if(returnPrimary == true)
    {
        cmd.CommandText += "SELECT CAST(scope_identity() AS int)";
    }            
        // Obtain column names/data types/values into the SqlParameter object
    sqlParameter = parameterSettings.GetParameters<T>(table, config);

        // Check for null in Sql Parameter values, apply DBNull.Value, return parameters to
        // SqlCommand instance
    cmd.Parameters.AddRange(parameterSettings.NullValueCheck(sqlParameter).ToArray());

        // if returnPrimary is truen, return the primary key while executing 
        // the sql parameter
    if (returnPrimary)
    {
        return (int)cmd.ExecuteScalar();
    }
    else
        cmd.ExecuteNonQuery();
    return 1;            
}

person jcameron47    schedule 02.07.2015    source источник


Ответы (1)


Метод GetParameters возвращает List и поэтому не может быть назначен полю SqlParameter. Это поле должно быть типа List<SqlParameter>, или вам нужно выбрать одно значение из возвращаемого значения метода GetParameters.

person bkardol    schedule 02.07.2015
comment
Ах, слеп на это. SqlParameter был списком‹›, упс! Благодарю вас! Я бы +1, но у меня нет +15 респ. Извини. Ответ: public int RunInsertQuery (bool returnPrimary, SqlCommand cmd, Config config, ParameterSettings parameterSettings, List sqlParameter, T table) - person jcameron47; 03.07.2015
comment
@ jcameron47 Нет проблем. Я думаю, вы также измените «Список» на общую версию «List‹SqlParameter›», верно? :) - person bkardol; 03.07.2015
comment
Ага, держу их всех в общем городе :) Большое спасибо. - person jcameron47; 03.07.2015
comment
@ jcameron47, если ответ в порядке. Вы можете принять это как ответ. - person bkardol; 03.07.2015