c# - 将参数分配给sql数据源

标签 c# asp.net sqldatasource formview

我正在尝试从SQL Server获取数据并在formview中使用它,但是formview控件不会从数据源获取任何数据。

(数据源在页面加载时获取参数)

输出仅为:“这里什么也看不到”和一个空表。

这是数据源和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();
 }

最佳答案

您有两个问题:


首先,您不需要再次添加参数-它已在标记中定义
您不必在参数名称中使用@-只需名称即可。


因此,请改用以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    SqlDataSource1.SelectParameters["idd"].DefaultValue = "077763554";
    FormView1.DataBind();
}


这应该可以解决问题-在现有参数上设置.DefaultValue,并使用标记中的idd参数名称(<asp:Parameter Name="idd" Type="String" />

关于c# - 将参数分配给sql数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17000390/

相关文章:

c# - ASP.NET - 当前上下文中不存在名称 'Context'

c# - 为什么等待不等待?

asp.net - 扩展方法必须在非泛型静态类中定义

asp.net - 为什么在 ASP.NET MVC5 中无法重载?

c# - SignalR 与 Azure 进行横向扩展以实现聊天场景

C# SortedSet<T> 和相等性

c# - 找不到文件“Microsoft.Windows.Common-Controls,版本=6.0.0.0,文化=*,PublicKeyToken=6595b64144ccf1df,

c# - SQL数据源参数

c# - 代码隐藏中的 GridView RowUpdating SqlDataSource.Update

C#:SQL FilterExpression - 缺少操作数异常