4

我正在尝试在 c#2.0(linqbridge) 中使用 linq 在我的数据库中搜索患者姓名,但出现以下错误: System.Data.Datatable 不包含 AsEnumerable() System.Data 的定义.Datatable 不包含 CopyToDataTable() 的定义

我将 linqBridge.dll 引用添加到我的项目中。我正在使用:

使用 System.Linq;

            List<string> names = name.Split(' ').ToList();
            SqlConnection con = new SqlConnection(m_connection_string);
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM PATIENT", con);
            DataSet ds = new DataSet();
            da.Fill(ds);

            var query =
            from pat in ds.Tables["PATIENT"].AsEnumerable().Where(c => names.All(val => c.PAT_SEARCH_NAME.Contains(val)))
            select pat;

            DataTable table = query.CopyToDataTable();

我究竟做错了什么?我已经读过这个版本的 LinqBridge(1.1) 不包含这个方法。有没有办法解决这个问题?

谢谢。

4

3 回答 3

22

您是否尝试过将System.Data.DataSetExtensions dll 添加到您的项目中?

于 2011-09-06T06:20:31.607 回答
0

为了完成前面的答案,如果您无法使用 Visual Studio 添加对System.Data.DataSetExtensions的引用,我设法通过直接手动编辑库项目文件来做到这一点。只需在现有引用中插入正确的行:

<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Runtime.Remoting" />
于 2014-07-07T15:50:35.743 回答
0

使用DataTable代替DataSet

在您的代码中更改为:

DataTable ds = new DataTable();
于 2020-06-06T13:22:25.443 回答