2013-08-16 5 views
0

Я пытаюсь создать страницу «Свяжитесь с нами», и у меня есть выпадающий список на этой странице, используя SqlDataSource, чтобы вытащить список из моей базы данных, но в моей базе данных есть дубликаты записей, которые мне не нужны показано в списке, есть ли в любом случае я могу удалить дубликаты? Я не могу, чтобы жизнь меня поняла.Удаление дубликатов из sqldatasource

Вот мой код, спасибо.

<%@ Page Language="C#" %> 

<!DOCTYPE html> 

<script runat="server"> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    DropDownList2.Visible = false; 
    DropDownList3.Visible = false; 
} 
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int ID = DropDownList1.SelectedIndex +1; 
    string _courseID = ID.ToString(); 
    StringCollection idCollection = new StringCollection(); 
    SqlDataSource2.SelectCommand = "SELECT * FROM TB_Chapter WHERE c_CourseID = '" + _courseID + "' "; 
    DropDownList2.DataBind(); 
    DropDownList2.Visible = true; 
    DropDownList3.Visible = false; 
} 
</script> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
    <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="m_ModuleName" DataValueField="m_ID" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:OpenIT_DBConnectionString3 %>" SelectCommand="SELECT * FROM [TB_modules]"></asp:SqlDataSource> 
    <br /> 
    <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource2" DataTextField="c_ChapterName" DataValueField="c_ChapterID"></asp:DropDownList> 
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:OpenIT_DBConnectionString3 %>" SelectCommand="SELECT * FROM [TB_Chapter] WHERE ([c_CourseID] = @c_CourseID)"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="DropDownList1" Name="c_CourseID" PropertyName="SelectedValue" Type="String" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
    <br /> 
    <asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="SqlDataSource3" DataTextField="c_ChapterTopicName" DataValueField="c_ChapterTopicID"></asp:DropDownList> 
    <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:OpenIT_DBConnectionString3 %>" SelectCommand="SELECT * FROM [TB_Chapter] WHERE ([c_ChapterID] = @c_ChapterID)"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="DropDownList2" Name="c_ChapterID" PropertyName="SelectedValue" Type="String" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
</div> 
</form> 
</body> 
</html> 
+0

Используйте DISTINCT !!!! –

+0

Почему у вашей базы данных есть дубликаты? Я мог видеть де-нормализацию посуды, но почему-то я не думаю, что это то, что вы делаете. – Maslow

ответ

0

SELECT DISTINCT * FROM TB_Chapter WHERE c_CourseID = '" + _courseID + "' "

0

использование DISTINCT ключевых слов.


WITH UniqueChapterxxx AS 
    (
     SELECT m_ID, m_ID,xxx, 
      ROW_NUMBER() OVER(PARTITION BY m_ID ORDER BY m_ID) AS 'RowNum' 
     FROM TB_Chapter WHERE c_CourseID = '" + _courseID + "' " 
    ) 
    SELECT * 
    FROM UniqueChapterxxx 
    WHERE RowNum = 1 

Check This Link


Смежные вопросы