2012-03-21 39 views
0

當我綁定dropdownlistHostelRoomType,它與上面留下的空白空間綁定..我沒有任何想法,爲什麼發生這種情況。我的代碼:空白空間也綁定時綁定下拉列表

<div> 
       <fieldset> 
        <legend>Hostel Details </legend> 
        <asp:Label ID="LabelHostelRoomType" runat="server" Text="Room Type"></asp:Label> 
        <asp:DropDownList ID="DropDownListHostelRoom" runat="server" DataTextField="HTypeName" 
         DataValueField="_HRTypID" OnSelectedIndexChanged="DropDownListHostelRoom_SelectedIndexChanged"> 
        </asp:DropDownList> 
        <asp:GridView ID="GridViewHostelRoom" runat="server"> 
        </asp:GridView> 
       </fieldset> 
      </div> 

private void FillHostelRoomType() 
      { 
       SqlConnection cn = new SqlConnection(@"Data Source=.;Initial Catalog=_uniManagement;Integrated Security=True"); 
       string sqlDropdownHostelRoom = String.Format("SELECT [_HRTypID], [HTYPeNAME] FROM [_HOSTELS_Room_TYPE]"); 
       SqlCommand cmd = new SqlCommand(sqlDropdownHostelRoom); 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 
       DataTable dt = new DataTable(); 
       da.Fill(dt); 
       DropDownListHostelRoom.DataSource = dt; 
       DropDownListHostelRoom.DataBind(); 
      } 



protected override void OnInit(EventArgs e) 
     { 
      DropDownListHostelRoom.AppendDataBoundItems = true; 
      DropDownListMemberType.AppendDataBoundItems = true; 
      FillHostelRoomType(); 
      FillHostelMember(); 
      base.OnInit(e); 
     } 

回答

1

最有可能的是,源數據庫中有空的空間。在您的SQL語句中,您應該能夠在字段名稱周圍使用RTRIM()以消除該問題。

另一個可能的原因可能是DB中的字段是具有指定長度的CHAR。如果是這樣的話,即使沒有空格,檢索它總是會給你足夠多的空間,所以SQL Server會用足夠的空格填充結尾。

例如,"DAVID"在它將被返回爲"DAVID "數據定義爲CHAR(10)(大衛具有五個空格所附使總最多10個)

無論哪種方式,RTRIM應的場修理它。

string sqlDropdownHostelRoom = String.Format("SELECT [_HRTypID], RTRIM([HTYPeNAME]) AS HTYPeNAME FROM [_HOSTELS_Room_TYPE]"); 
+0

在我的數據庫中沒有空格。 – 2012-03-21 16:05:35

+1

給RTRIM命令一個鏡頭 - 應該只需要幾秒鐘,看看它是否工作。如果不是,我會刪除這個。 – David 2012-03-21 16:09:38

+0

或者我完全錯誤地閱讀這個問題? – David 2012-03-21 16:19:15