繁体   English   中英

传递参数时sqldatasource出现问题

[英]Problem with sqldatasource when passing parameters

部分sqldatasource参数:

            <asp:SqlDataSource ID="AllQuestionAskedDataSource" runat="server" 
                ConnectionString="<%$ ConnectionStrings:CP_AllQuestionsAnswered %>" SelectCommand="SELECT ThreadTitle
FROM Threads
WHERE UsersID=@UserID">
                <SelectParameters>
                    <asp:Parameter Name="UserID" />
                </SelectParameters>
            </asp:SqlDataSource>

后面的代码:

 Guid userid = UsefulStaticMethods.GetUserNameFromUserGuid(name);
 AllQuestionAskedDataSource.SelectParameters["UserID"].DefaultValue = userid;

它告诉我它无法将用户 ID 从 Guid 转换为字符串。 但是该参数必须是一个 Guid,sqldatasource 的 select 语句才能工作

<SelectParameters>
                <asp:Parameter Name="UserID" Type="Guid"  />
     </SelectParameters> 

更新代码

<asp:Parameter Name="UserID" Type="Object" />
<asp:Parameter Name="MemberID" DbType="Guid" />

您可以简单地编写自定义参数:

public class UserIdParameter : Parameter
{
    protected override object Evaluate(HttpContext context, 
        System.Web.UI.Control control)
    {
        var name = GetName();
        return UsefulStaticMethods.GetUserNameFromUserGuid(name);

    }
}

<SelectParameters>
        <custom:UserIdParameter Name="UserID" />
</SelectParameters> 

暂无
暂无

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

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