2012-03-21 66 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