在aspx页面上执行SQL查询

时间:2015-04-03 07:45:41

标签: c# sql asp.net

Hello其他程序员,

我真的陷入了最简单的事情 - 我找不到一种方法来解决我的问题而不使用mvc。

文件夹结构:

project
-> App_Data
----> mviedb.mdf
-> Default.aspx
----> Default.aspx.cs
-> Web.config

到目前为止我的mviedb数据库(表用户):

id | user   | password 
---+--------+------------
1  | daniel | 1
2  | test   | test

我想做什么:基本上打印出我的表中的内容,所以“从用户中选择*” - 但我真的不知道如何。我的Default.aspx.cs文件:

namespace mvie {
    public partial class _Default : System.Web.UI.Page {
        protected void Page_Load(object sender, EventArgs e) {
            string query = "select * from users";
            if (Query != "") {
                try {
                    SqlDataAdapter adp = new SqlDataAdapter(query, @"data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\mviedb.mdf;User Instance=true");
                    DataTable dt = new DataTable();
                    adp.Fill(dt);

                } catch (Exception ex) {

                }
            }
        }
    }
}

现在我需要在某处打印DataTable。但是怎么样?我用谷歌搜索了一段时间但没有找到没有mvc的解决方案。

1 个答案:

答案 0 :(得分:0)

根据史蒂夫的评论,ASP.Net WebForms鼓励您在以表格方式表示数据时使用GridViewRepeater等控件。然后,这将向浏览器呈现等效的Html。

例如,在<form runat="server">文件的.aspx标记内添加控件:

<asp:DataGrid runat="server" ID="gridUsers"></asp:DataGrid>
<asp:Label runat="server" ID="lblError"></asp:Label>

在您的代码中:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        var query = "select * from users";
        try
        {
            // DataAdapters and DataTables are IDisposable
            using (var adp = new SqlDataAdapter(query, @"data source=.\SQLEXPRESS;...;"))
            using (var dt = new DataTable())
            {
                adp.Fill(dt);
                // Bind the datatable to the grid
                gridUsers.DataSource = dt;
                gridUsers.DataBind();
            }
        }
        catch (Exception ex)
        {
            lblError.Text = ex.Message;
        }
    }
}

将呈现一个非常基本的表格,显示users表的所有列。

但是,如果可以的话,我建议您保留WebForms(这是一项遗留技术),然后转到ASP.Net MVC,在那里您将获取控制器中的用户数据,并呈现users表直接在视图中。这样你就可以更好地控制Html渲染。