Аргументы типа для методов не могут быть выведены из использования. Попробуйте явно указать аргументы типа

Я пытаюсь заполнить текст автозаполнения с SQL Server в текстовом поле, используя событие TextChanged ().[WindowsForm, C#]

У меня есть частичная форма класса

Событие TextChanged:

private void textBoxFilterCName_TextChanged(object sender, EventArgs e)
    {
        DataTable dt = FillCustomerName(textBoxFilterCName.Text);
        List<string> listNames = CustomerName.ConvertDataTableToList(dt);
        textBoxFilterCName.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
        AutoCompleteStringCollection dataName = new AutoCompleteStringCollection();
        dataName.AddRange(listNames.ToArray());
        textBoxFilterCName.AutoCompleteCustomSource = dataName;
        textBoxFilterCName.AutoCompleteSource = AutoCompleteSource.CustomSource;
    }

Я получаю эту ошибку при вызове этого методаCustomerName.ConvertDataTableToList().

Аргументы типа для методов CustomerName.ConvertDataTableToList (DataTable) не могут быть выведены из использования. Попробуйте указать аргументы типа явно.

Метод FillCustomerName ()

public DataTable FillCustomerName(string cName)
    {
        DataTable dtName = new DataTable();
        List<string> listName = new List<string>();
        try
        {
            dbconnection.Open();
            string query = "SELECT [Name] FROM Customers WHERE Is_Active=1 AND Name like @CName + '%'";
            using (SqlCommand cmd = new SqlCommand(query, dbconnection))
            {
                cmd.Parameters.Add("CName", SqlDbType.VarChar).Value = cName;
                dtName.Load(cmd.ExecuteReader());
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Connection Error");
        }
        finally
        {
            dbconnection.Close();
        }
        return dtName;
    }

Класс CustomerName:

public static class CustomerName
{
    private static T CreateItemFromRow<T>(DataRow row, IList<PropertyInfo> properties) where T : new()
    {
        T item = new T();
        foreach (var property in properties)
        {
            if (property.PropertyType == typeof(System.DayOfWeek))
            {
                DayOfWeek day = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), row[property.Name].ToString());
                property.SetValue(item, day, null);
            }
            else
            {
                property.SetValue(item, row[property.Name], null);
            }
        }
        return item;
    }
    public static List<T> ConvertDataTableToList<T>(this DataTable table) where T : new()
    {
        IList<PropertyInfo> properties = typeof(T).GetProperties().ToList();
        List<T> result = new List<T>();

        foreach (var row in table.Rows)
        {
            var item = CreateItemFromRow<T>((DataRow)row, properties);
            result.Add(item);
        }
        return result;            
    }
}

Запрос выполняется, и результаты успешно генерируются, когда я отлаживаю приложение. Но я не мог загрузить датируемые результаты в виде списка.

Возможные предложения для этого преобразования приветствуются.

Ответы на вопрос(1)

Ваш ответ на вопрос