asp.net Grid最好的绑定方法

时间:2012-10-29 19:37:39

标签: asp.net datagrid

我使用followng代码绑定到ASP.NET DataGrid。我有以下内容,它有效,但想知道这是否是最好的方法。关注我的一些事情是我不打开连接,也没有使用DataReader。请注意,这是在我的代码页面后面写的。

             string strConn =  ConfigurationManager.ConnectionStrings["SQL1"].ConnectionString; 
             SqlDataSource DataSource1 = new SqlDataSource();  
             DataSource1.ConnectionString = strConn;
             DataSource1.SelectCommand = "SELECT * FROM tblTruck where LocId = @LocID ";     

             DataSource1.SelectParameters.Add(new Parameter("LocId", System.TypeCode.String, value));                 
             Grid1.DataSource = DataSource1.Select(DataSourceSelectArguments.Empty); 
             Grid1.Rebind();   

2 个答案:

答案 0 :(得分:1)

在这种情况下,DataSource控件处理建立连接,读取连接和解析返回的内部逻辑。这本身就非常方便,但如果你需要更多控制就会引起问题。

从风格上讲,在您的UI中对SQL代码进行硬编码永远不是一个好主意,尽管您使用参数而不是连接是好的。

总体而言,没有“最佳方法”。基于维护/更改,代码漏洞,性能,可靠性,显示复杂性等因素,您的解决方案应根据您的问题量身定制。

我个人不喜欢数据源控件,但是当你不想花费大量时间配置网格时,它们对网格工作很有用。

SQLCommands是非常快速和最佳的,但你必须编写一个维护大量代码来使用它们,并且它可能有些脆弱。

DataAdapters / DataReaders / DataTables / DataSet比SQLCommands更容易编写维护,但它们在内存中可能很麻烦,并且通常不能正确处理。

Linq / ENF使编写和维护变得简单,但有时它们会让你用他们自己生成的sql调试问题而不是你自己的sql,并且执行速度通常较慢(通常是非无关紧要的数量)。

希望有助于回答你的问题。

答案 1 :(得分:0)

我认为您最好尝试使用linq和其他类型的编程(如实体框架工作等)来使用您的代码,因为它们可以使您的项目更快,更可靠。并且会导致编码减少。