在不同的数据表中显示SQL结果

时间:2016-06-27 19:05:30

标签: c# html sql odbc

所以我编写了这个方法来用SQL查询填充数据表。理想情况下,我想学习如何在我们页面上的自己的表中显示多个查询。

private DataTable GetOdbcData()
    {
         string connectionString = "dsn=sample;UID= user;PWD=password";
         using (OdbcConnection conn = new OdbcConnection(connectionString))
         {
             using (OdbcCommand cmd = new OdbcCommand("select * from sample"))
             {
                 using (OdbcDataAdapter oda = new OdbcDataAdapter())
                 {
                     cmd.Connection = conn;
                     conn.Open();
                     oda.SelectCommand = cmd;
                     using (DataTable dt = new DataTable())
                     {
                         oda.Fill(dt);
                         return dt;
                     }
                 }
             }
         }
      }

我将此代码转换为HTML以进行显示。我假设我必须改变的部分是上面的方法。

if (!IsPostBack) // code to run at page load
        {
            // create a DataTable from our database
            DataTable dt = this.GetOdbcData();

            // to create an HTML string
            StringBuilder html = new StringBuilder();

            // table start
            html.Append("<table class='table table-striped' margin-left='auto'>");

            // creates header row of table
            html.Append("<tr>");
            foreach (DataColumn column in dt.Columns)
            {
                html.Append("<th>");
                html.Append(column.ColumnName);
                html.Append("</th>");
            }
            html.Append("</tr>");

            // rows for data
            foreach (DataRow row in dt.Rows)
            {
                html.Append("<tr>");
                foreach (DataColumn column in dt.Columns)
                {
                    html.Append("<td>");
                    html.Append(row[column.ColumnName]);
                    html.Append("</td>");
                }
                html.Append("</tr>");
            }

            // table end
            html.Append("</table>");

            // append the HTML string to name Table.
            Table.Controls.Add(new Literal { Text = html.ToString() });
        }

我称之为:

 <asp:PlaceHolder ID = "Table" runat="server" /> 

1 个答案:

答案 0 :(得分:0)

哈哈。避免剪切和粘贴始终是个问题。这是唯一的问题!

使用QueryFirst。您可以在app.config中指定一次数据源。您指定(连接,命令,读取器,填充)零次!它由QueryFirst管理。您使用QueryFirst模板(Add - &gt; Visual C#Items)创建一个新的.sql文件。每个查询都有自己的文件。然后在你的foreach中调用你的查询...

foreach(var item in GetAllSamples.Execute())
{
    //... do something.
}

每一行都有所作为。你永远不会重复自己。没有切割和粘贴: - )