我正在尝试从SQL Server获取数据并在formview中使用它,但是formview控件不会从数据源获取任何数据。
(数据源在页面加载时获取参数)
输出只是:“这里没什么可看的”和一张空表。
这是datasource和formview标签:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:igroup20_test2ConnectionString %>"
SelectCommand="SELECT * FROM [member] where ([id] = @idd)">
<SelectParameters>
<asp:Parameter Name="idd" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="id">
<EmptyDataTemplate>
There is nothing to see here.
</EmptyDataTemplate>
<ItemTemplate>
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("id") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("f_name") %>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:FormView>
这是我背后的代码:
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.SelectParameters.Add("@idd", "077763554");
FormView1.DataBind();
}
答案 0 :(得分:7)
你有两个问题:
@
- 只需要名称即可。所以请改用此代码:
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.SelectParameters["idd"].DefaultValue = "077763554";
FormView1.DataBind();
}
这应该可以做到 - 在现有参数上设置.DefaultValue
,并使用标记(idd
)
<asp:Parameter Name="idd" Type="String" />
参数名称
答案 1 :(得分:1)
好像你在这里添加2个参数。一个声明,一个在你的代码中。
尝试仅在代码中添加参数。也将名称更改为idd
而不是@idd
。
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:igroup20_test2ConnectionString %>"
SelectCommand="SELECT * FROM [member] where ([id] = @idd)">
</asp:SqlDataSource>
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.SelectParameters.Add("idd", "077763554");
FormView1.DataBind();
}