2016-06-27 19 views
0

所以我写了这个方法来用sql查询填充数据表。理想情况下,我想了解如何在自己的页面上显示多个查询。在不同的数据表中显示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" /> 
+3

你的问题是什么? –

+0

实际上是什么问题..如果你可以从单个Select语句显示绑定到DataGridView的单个DataTable ..然后对返回多个结果的查询做同样的事情并将数据集存储到列表中得到'DataSet.Tables [x]'意思是一个从0开始的整数' – MethodMan

+0

我想知道如何一次运行多个查询。现在用我的代码,我不得不再次用新的查询剪贴。 – mookie

回答

0

哈哈。避免剪切和粘贴始终是个问题。这是唯一的问题!使用QueryFirst。您可以在app.config中指定一次数据源。你指定(连接,命令,阅读器,填充)零次!它由QueryFirst管理。使用QueryFirst模板(添加 - > Visual C#项目)创建一个新的.sql文件。每个查询都有自己的文件。然后在您的foreach中打电话给您的查询...

每条线都有所作为。你永远不会重复自己。 NO CUT AND PASTE :-)

相关问题