繁体   English   中英

如何为SqlDataSource UpdateCommand设置参数

[英]How to set parameters for SqlDataSource UpdateCommand

对于Gridview:

我试图在SQLDataSource中第一次使用存储过程来进行UpdateCommand:

<asp:SqlDataSource ID="TECT_DataSource" runat="server"
    ConnectionString="<%$ ConnectionStrings:OracleConnectionString %>" 
    ProviderName="<%$ ConnectionStrings:OracleConnectionString.ProviderName %>"
    SelectCommand="SELECT MPID, User_Id, Last_Name, First_Name
                   FROM Scripts.vw_Tect_Exam"
    UpdateCommand="P_TECT_UPD_EXAM_ID" UpdateCommandType="StoredProcedure">  
    <UpdateParameters>                    
        <asp:Parameter Name="MPID" Type="Int32"  />  
        <asp:Parameter Name="User_Id" Type="String" />   
    </UpdateParameters> 
</asp:SqlDataSource>

我想知道UpdateParameters如何设置它们的值,因为我只指定了一个名字?
过程P_TECT_UPD_EXAM_ID需要两个参数作为输入: "in_MPID""in_UserId"
我也想知道如何将这些值映射到过程的输入参数,因为名称不同?

你可以设置这样的东西:

示例:在示例中,MPID是sql参数名称@MPID

<UpdateParameters>                    
    <asp:ControlParameter Name="MPID" ControlID="MPID_TextBox" PropertyName="Text  />  
    <asp:ControlParameter Name="User_Id" ControlID="User_Id_TextBox" PropertyName="Text  />  
</UpdateParameters> 

更正:刚刚发现你的proc param名称,所以它必须是

<asp:ControlParameter Name="in_MPID" ...............
<asp:ControlParameter Name="in_User_Id" ...............

希望这可以帮助....

我真的不会使用SqlDataSource 如果在代码隐藏中调用数据库(或者在数据访问层中更好),则会更容易。

如果使用SqlDataSource ,则只能在该页面上使用存储过程调用。 每次要进行相同的调用时,都必须复制并粘贴SqlDataSource或从中调用UserControl

以下示例使用Entity Framework连接到数据库并检索记录:

public List<Record> GetAllRecordsByUserName(string credentials)
{
    List<Record> recordList;
    using (CustomEntities context = new CustomEntities())
    {

        IQueryable<Section> recordQuery = from records in context.Records
                                              where records.UserName == credentials
                                              select records; 
        recordList = recordQuery.ToList<Record>();
    }
    return recordList;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM