Ошибка: указанный метод не поддерживается? - PullRequest
8 голосов
/ 11 марта 2010

Я получаю эту ошибку, когда пытаюсь вызвать Find ()

public void findTxt(string text)
    {
        BindingSource src = new BindingSource();
        src.DataSource = dataGridView1.DataSource;
        src.Position = src.Find("p_Name", text);    // Specified method is not supported

        if (src.Position == 0 && dataGridView1.Rows[0].Cells[2].Value.ToString() == text)
        {
            MessageBox.Show("Item found!!");
            dataGridView1.CurrentCell = dataGridView1.Rows[src.Position].Cells[2];
        }
        else if (src.Position == 0 && dataGridView1.Rows[0].Cells[2].Value.ToString() != text)
        {
            MessageBox.Show("Item not found!!");
        }
        else
        {
            MessageBox.Show("Item found!!");
            dataGridView1.CurrentCell = dataGridView1.Rows[src.Position].Cells[2];
        }

    }

Edit:

Я получаю эту ошибку при вызове метода findText из другой формы, однако вызов этого метода из основной формы не приводит к такой ошибке.

Ответы [ 2 ]

4 голосов
/ 11 марта 2010

Это зависит от основного источника данных, какие операции он поддерживает. Я считаю, что DataTable единственный, кто из коробки поддерживает это. Вы можете проверить (в этом случае) через:

IBindingListView blv = yourDataSource as IBindingListView;
bool canSearch = blv != null && blv.SupportsSearching;

Итак, что является основным источником данных? A List<T> (или даже BindingList<T>) этого не обеспечит.

0 голосов
/ 07 июня 2019

У меня была эта ошибка в моем Asp.Net Core API. Это было из-за разницы API в Asp.Net Framework и .Net Core. Мое приложение было в Asp.Net Framework, и я перенес его на .Net Core. Приведенный ниже код всегда будет работать нормально во время компиляции, но во время выполнения он не работал и выдавал ошибку System.NotSupportedException: 'Specified method is not supported.'

Request.Body.Seek(0, SeekOrigin.Begin);
var streamReader = new StreamReader(Request.Body);
bodyData = await streamReader.ReadToEndAsync();

enter image description here

Чтобы исправить это, все, что вам нужно сделать, это изменить его правильно, как показано ниже.

bodyData = await new StreamReader(Request.Body, Encoding.Default).ReadToEndAsync();

Вы также должны добавить System.Text пространство имен.

Надеюсь, это поможет.

...