所以我编写了这个方法来用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" />
答案 0 :(得分:0)
哈哈。避免剪切和粘贴始终是个问题。这是唯一的问题!
使用QueryFirst。您可以在app.config中指定一次数据源。您指定(连接,命令,读取器,填充)零次!它由QueryFirst管理。您使用QueryFirst模板(Add - &gt; Visual C#Items)创建一个新的.sql文件。每个查询都有自己的文件。然后在你的foreach中调用你的查询...
foreach(var item in GetAllSamples.Execute())
{
//... do something.
}
每一行都有所作为。你永远不会重复自己。没有切割和粘贴: - )