1

问题也可以是:

调用存储过程来填充 DataGrid 的首选方式是什么?

我目前正在开发一个 ASP.NET 页面,我想知道 Linq 是否适合与我的 SQL Server DB 一起使用。

ADO 看起来也不错,所以我只想就一般而言最合适的内容提供反馈。

LINQ 确实使调用存储过程变得容易,但我有点坚持尝试找出将结果集从存储过程放入数据网格的正确方法。

不要以为我想在那里做一个 foreach ..但是所有的例子似乎都指向那个方向.. 或者我只是很困惑

我已经阅读了这篇博文,而这一篇,似乎要走的路是 foreach 和 Ienumerable 方法。我对整件事有点困惑。

我还在考虑创建电影数据库的教程,在这种情况下,DataGrid 就变得不必要了。

访问简单的 SQL 过程并返回填充的数据网格或类似数据网格的数据表示模型的最简单、最直接的方法是什么?

4

2 回答 2

2

我建议使用 Linq to SQL。你认为你不应该使用任何 foreach 循环是正确的——你需要的只是数据绑定。

例如。在您后面的代码中,您可能有一个执行以下操作的 DataBind 事件:

protected void GridView1_DataBanding(object sender, EventArgs e)
{
            // Get an instance of our generated DataContext class.
            DAL.AdventureWorks db =
                new DAL.AdventureWorks(
                    WebConfigurationManager.ConnectionStrings["AdventureWorksCS"].ConnectionString);

            // Get a strongly typed List from the Stored Procedure output
            List<DAL.MySPResult> myData = db.MySP().ToList();

            GridView1.DataSource = myData;
}

您需要在 Linq to SQL 类中设置您的存储过程,方法是将其拖到设计图面上。

希望有帮助。

于 2009-04-06T05:39:19.813 回答
1

使用 SqlDataSource 是最直接的方法。如果您在业务层中隔离所有数据库调用,那么您可以简单地创建一个调用存储过程的 ObjectDataSource。虽然在这里可能感觉有点矫枉过正,但这是一项有用的技能,一旦掌握了它就很容易实施。

如果您将使用数据绑定控件,您真的不需要 LINQ 或 foreach 等,因为您不需要手动填充它(这就是数据绑定的全部内容)。

还有一件事——我强烈建议您使用GridView而不是 DataGrid;它更新,具有更多自动化功能,并且是更强大和更有吸引力的控件。如果您需要任何示例代码,请告诉我。

于 2009-04-06T03:26:42.643 回答