2010-11-12 76 views
2

根据很多因素,像名称,年龄等,我想对我的记录实施某种排序...所以我迄今为止所完成的工作是创建用户控件从数据库 中显示因子(名称|城市),所以当我点击“名称”时,它会填充一个带有所有字母加“其他字符”的转发器,以显示以数字或其他字符开头的名称 和当点击“城市”中继器填充我在我的数据库中的所有城市通过字母,数字和字符在ASP.NET中进行高级排序实现

城市排序很容易,我想,但我现在我正在名称排序。

现在我希望我会找到帮助,这点:

1 - 据我实现了,你认为这是一个很好的实现,或者not..is优化对数据库优化负载


2 - 我用这个查询“SELECT [id],[name] FROM list WHERE(像@SearchString +'%'这样的名字),搜索字符串是从查询字符串中得到的,它等于我想要的字母order by但是,如何返回所有以数字或其他字符开头的名字,我的意思是我不想在我的字母表旁边列出所有字符和数字的列表:S!

编辑点数2!

我设法使用这种通配符格式来成功过滤所有不以字母开头的记录(数字或特殊字符)name like '[^a-z]%'我希望它能帮助其他人!


3 - 我已经放置中继器在Page.aspx,然后将其绑定到SqlDataReader对象,而不是在代码隐藏文件使用一个SqlDataSource,我认为这将是更好地控制开启和关闭连接和处理错误,因为我不知道使用SqlDataSource!时连接正在发生什么,如果我错了,请纠正我,我只花了1个月练习!无论如何,当我第一次使用SqlDataSource时,我可以很容易地为参数提供一个默认值,所以我不会收到错误,因为显示器中继器需要填充,并且当页面首次加载时它没有querystrings干净,但我找不到现在的方式,因为我使用一些ADO.NET类和作为中继器的数据源SqlDataReader对象

<SelectParameters> 
    <asp:QueryStringParameter Name="arrange_by_id" QueryStringField="ID" 
     Type="Int32" DefaultValue="1" /> 
    </SelectParameters> 

PS我想到了正则表达式过滤所有以数字或字符开头的记录,它像SQL通配符但方式更多的进步,问题是我不知道是否有可能在这种情况下使用或如何在我的查询内使用它

+0

你的问题是什么? – Hogan 2010-11-12 14:07:26

+0

这是一个以上的问题,因为它会更清楚地解释我的情况,并提出我的问题,而不是分离问题和每次解释我的情况或例子...我主要关心的是实现对所有记录根据字母表(会有一个带有字母表的列表),并且只有一个按钮用于过滤所有以数字和特殊字符开头的记录!...我试图用3分总结我的问题 – lKashef 2010-11-12 14:15:23

+0

它是Asp。网络Web窗体,而不是Asp.net MVC – lKashef 2010-11-12 14:16:04

回答

0

这是一个使用datareader的标准模式,我woul d使用这个:

using (SqlConnection cn = new SqlConnection(connectionString)) 
{ 
    using (SqlCommand cm = new SqlCommand(commandString, cn)) 
    { 
    using (SqlDataReader dr = cm.ExecuteReader(); 
    { 
     // use dr to read values. 
    } 
    } 
}   
+0

添加关键字'using'有什么用处?你认为使用SqlDataReader比SqlDataObject更好吗? – lKashef 2010-11-12 17:39:04

+0

使用构造确保资源妥善处置。我认为objectdatasource是有用的,如果你要做分页或排序,但你可能想制作一个自定义objectdatascource来优化这些功能。 – Hogan 2010-11-12 18:16:13

+0

下面是一个很好的例子:http://msdn.microsoft.com/en-us/library/aa479347.aspx如果你有他们的邮政编码有问题。 – Hogan 2010-11-12 18:23:59

相关问题