Не удается неявно преобразовать тип '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 DataGenerator
Подпись метода для 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;
}
1 ответ
Решение
GetParameters
метод возвращает List
и, следовательно, не может быть назначен на SqlParameter
поле. Это поле должно быть типа List<SqlParameter>
или вам нужно выбрать одно значение из возвращаемого значения GetParameters
метод.