【问题标题】:What's the best way to populate data from a sql db. Table or gridview从 sql 数据库填充数据的最佳方法是什么。表格或网格视图
【发布时间】:2023-03-13 21:34:01
【问题描述】:

如果我想要看起来像表格或网格视图的东西,我想知道将数据从 sql db 填充到页面(使用 webforms)的最佳方式是什么,我可以双击每一行并打开一个新窗口是否包含该特定行的 sql 数据库中的一些数据?

我不想每次双击每一行时都查看数据库,所以我希望我第一次获取的数据在整个会话中都保留。

有没有针对这种情况的简洁教程?

最好的问候 小白乔

【问题讨论】:

    标签: c# asp.net sql-server gridview webforms


    【解决方案1】:

    将您的数据从数据库中取出并放入DataTableDataView(如果要存储多组)- 暂时坚持使用DataTables

    如果您希望对象在回发之间保持不变,您可以使用ViewSatate["myDataTable"] = myDataTableObjectSession["myDataTable"] = myDataTableObject。我倾向于使用Session,因为我是老派,有时我会将数据移动到另一个页面。

    所以你想在你的Page_Load 中添加这样的东西

    var myDataTable = new DataTable();
    if (!IsPostBack)
    {
        Session["myDataTable"] = null;
        //clear the session on a fresh page view and probably you 
        //want code here to go get the data from the database, ie:
        myDataTable = GetDataFromDatabase();
    }
    else
    {
        if (Session["myDataTable"] != null)
        {
            myDataTable = (DataTable)Session["myDataTable"];
        }
        else
        {
            myDataTable = GetDataFromDatabase();
        }
    }
    
    
    private DataTable GetDataFromDatabase()
    {
        //returns DataTable populated from Database
    } 
    

    你会想要改进上面的代码,这不是理想的代码,只是用那种方式来说明这个想法。另外,刷新数据时需要清除对象,现在要小心,因为这很容易绊倒自己。

    【讨论】:

    • 在页面上最好使用什么,如果我想双击每一行并打开一个新窗口,其中包含特定的 sql db 中的一些数据,它是 table 还是 gridview行?
    • 一个 GridView,您可以使用 OnRowCreated 隐藏/更改行大小等。如果您需要更改正在显示的数据而不影响源使用 OnRowDataBound,您也可以使用为每一行添加动态控件(需要在 PostBack 上重新创建动态控件 - 另一个雷区)。
    • 好的,但是表格呢?您更喜欢使用哪一个?假设您将获得大约 10 行数据,其中可能包含 6-7 列。这些行必须是可点击的,以便与新的 sql 查询一起打开一个新窗口。
    • GridView 将创建一个表格,从那里你可以用它做任何事情。这里有一个例子可以帮助你:code.msdn.microsoft.com/AddDynamicallyControlstoGri-d74fe84f
    • 感谢您的帮助!也许 stackoverflow 需要一个菜鸟部分来解决新手问题,因为已经有两个人投票结束了我的问题:S
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多