【发布时间】: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开始的整数 -
我想知道如何一次运行多个查询。现在使用我的代码,我必须使用新查询再次剪切和粘贴它。
-
您通过不对查询进行硬编码而是将其更改为存储过程并以这种方式执行结果来做到这一点。这并不难..