SqlServer Select 相同列名到 DataSet 时出错?
🏷️ SQL Server
Select 两个相同列名的数据到 DataSet
。
假设列名为【Comment
】,线下获取的 DataSet
中,第二个【Comment
】会自动变为【Comment1
】;
线上则报错【多次为 PagedPersons
指定了 Comment
列】
发现只有翻页时才会出错,第一页时线上线下都正常;翻页时线上线下都出错了。
原因:由于使用了 FluentData
框架,翻页时的代码如下。
cs
var pagedSql = string.Format(@"with PagedPersons as
(
select top 100 percent {0}, row_number() over (order by {1}) as FLUENTDATA_ROWNUMBER
{2}
)
select *
from PagedPersons
where fluentdata_RowNumber between {3} and {4}",
data.Select,
data.OrderBy,
sql,
data.GetFromItems(),
data.GetToItems());
错误信息是指多次为临时表【PagedPersons
】指定了【Comment
】列,导致了异常。