因此,我将一个遗留应用程序从coldfusion移植到asp.net/c#。我的问题是,(并且我已经全面搜索了它,但我可能不会正确地描述我的问题以获得良好结果),是我想从我拥有的第一个查询中获取结果,并执行第二个查询填写该栏。根据第一个数据库查询做出第二个数据库查询
下面是如何在ColdFusion中做到了:
<cfquery name="p" datasource="db">
select * from table
</cfquery>
<cfloop query="p">
<tr>
<td>
<a href="page.cfm?id=#p.id#">#p.title#</a>
</td>
<td">
#p.category#
</td>
<td>
#CreateObject("component","/components.dao").getuser(p.userid).user_fullname()#
</td>
</tr>
</cfloop>
你会发现我所说的组件和方法,我从查询发送用户ID了。此方法有另一个查询调用单独的数据库,并返回该用户的信息,在这种情况下是全名,而不仅仅是用户标识。这是我有对我已经创建了下面的代码asp.net/c#问题:
<asp:Repeater id="program_list" runat="server">
<ItemTemplate>
<tr>
<td>
<a href="page.aspx?id=<%# Eval("id") %>"><%# Eval("title") %></a>
</td>
<td>
<%# Eval("category") %>
</td>
<td>
<%# Eval("userid")%> (needs full name convert)
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
,并在代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
try
{
DbConnection connection = new SqlConnection();
connection.ConnectionString = "***";
connection.Open();
SqlCommand cmd = (SqlCommand)connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM table";
SqlDataReader reader = null;
reader = cmd.ExecuteReader();
program_list.DataSource = reader;
program_list.DataBind();
reader.Close();
connection.Close();
}
catch (Exception ex)
{
Response.Write(ex);
}
}
正如你所看到的,它只做第一部分,输出原始查询,但我不知道如何与该查询进行交互,以便第二次为用户详细信息调用数据库。任何想法将不胜感激,谢谢。
我可能失去了一些东西,但是你就不能使用你的SQL联接? – RandomWebGuy 2011-03-04 22:35:14