9

当我尝试调用 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 方法时出现该错误,但是从主窗体调用此方法不会导致此类错误。

4

2 回答 2

4

它支持什么操作取决于底层数据源。我相信这是开箱DataTable即用的唯一支持这一点。您可以通过以下方式检查(在这种情况下):

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

所以; 什么是底层数据源?A List<T>(甚至BindingList<T>)不会提供这个。

于 2010-03-11T04:57:07.743 回答
3

我的 Asp.Net Core API 中有这个错误。这是因为 Asp.Net Framework 和 .Net Core 的 API 不同。我的应用程序在 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命名空间。

希望能帮助到你。

于 2019-06-07T07:15:55.153 回答