Ошибка: указанный метод не поддерживается?
Я получаю эту ошибку, когда пытаюсь вызвать 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];
}
}
Редактировать:
Я получаю эту ошибку при вызове метода findText из другой формы, однако вызов этого метода из основной формы не приводит к такой ошибке.
3 ответа
Это зависит от основного источника данных, какие операции он поддерживает. я полагаю, что DataTable
это единственный, который из коробки поддерживает это. Вы можете проверить (в этом случае) через:
IBindingListView blv = yourDataSource as IBindingListView;
bool canSearch = blv != null && blv.SupportsSearching;
Так; что является основным источником данных? List<T>
(или даже BindingList<T>
) не предоставит это.
У меня была эта ошибка в моем 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();
Чтобы исправить это, все, что вам нужно сделать, это изменить его правильно, как показано ниже.
bodyData = await new StreamReader(Request.Body, Encoding.Default).ReadToEndAsync();
Вы также должны добавить System.Text
Пространство имен.
Надеюсь, это поможет.
Попробуйте использовать его в Startup.cs
app.Use((context, next) =>{context.Request.EnableBuffering();return next();});