private void BindFields()
{
DataTable table = Globals.ConvertDataReaderToDataTable(DataProvider.GetFields());
_fieldCount = table.Rows.Count;
dataGrid.DataSource = table;
dataGrid.DataBind();
}
由DotNetNuke平台提供的ConvertDataReaderToDataTable抛出此异常:
名为[column name]的列已属于此DataTable
我在不同的表中有相同名称的列,但它们是主/外键对,因此具有相同的值。你会怎么做才能解决这个问题?
答案 0 :(得分:0)
您通常只使用数据源中的一个列。除此之外,你可以将其他一列作为别名。
仅使用其中一个副本
Select a.SomeColumn, b.OtherStuff
From TableA a
Inner Join TableB b
on a.SomeColumn = b.SomeColumn
或使用别名
Select a.SomeColumn, b.SomeColumn as SomeColumnB, b.OtherStuff
From TableA a
Inner Join TableB b
on a.SomeColumn = b.SomeColumn
答案 1 :(得分:0)
我只是用
DataTable dataTable = new DataTable();
dataTable.Load(dataReader);
而不是DotNetNuke的
DataTable dataTable = Globals.ConvertDataReaderToDataTable(dataReader);
我不再得到例外了。
答案 2 :(得分:0)
如果在SQL JOIN语句中选择了相同的列,则会发生这种情况。我通过从我的sql连接中删除重复列来解决此问题
改变这个
SELECT O.Section</b>,S.CurriculumTblCode,
<b>S.Section ,S.SectionSettingTblCode FROM
otf.ViewOneToFiveGroups O
INNER JOIN
SectionSetting S ON O.SectionSettingTblCode= S.SectionSettingTblCode
对此,只需删除重复的 S.Section
SELECT <b>O.Section</b>,S.CurriculumTblCode,S.SectionSettingTblCode
FROM
otf.ViewOneToFiveGroups O
INNER JOIN SectionSetting S ON O.SectionSettingTblCode=
S.SectionSettingTblCode