【问题标题】:Displaying SQL results in different data tables在不同的数据表中显示 SQL 结果
【发布时间】:2016-07-05 15:40:44
【问题描述】:

所以我写了这个方法来用 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" /> 

【问题讨论】:

  • 你有什么问题?
  • 实际上是什么问题..如果您可以从单个 Select 语句显示绑定到 DataGridView 的单个 DataTable.. 然后对返回多个结果并将数据集存储到的查询执行相同的操作一个 List 从那里你可以得到DataSet.Tables[x] 意思是 x 是一个从0开始的整数
  • 我想知道如何一次运行多个查询。现在使用我的代码,我必须使用新查询再次剪切和粘贴它。
  • 您通过不对查询进行硬编码而是将其更改为存储过程并以这种方式执行结果来做到这一点。这并不难..

标签: c# html sql odbc


【解决方案1】:

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

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

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

每一行都做一些事情。你永远不会重复自己。没有剪切和粘贴:-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多