【问题标题】:Problem with sqldatasource when passing parameters传递参数时sqldatasource出现问题
【发布时间】:2011-07-11 16:21:13
【问题描述】:

部分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语句起作用

【问题讨论】:

  • 看我的回答here。也许有帮助
  • &lt;asp:SqlDataSource&gt; 中的参数是什么样的??
  • 见上文..它是写@UserID
  • 是的,我明白了 - 但在你的 &lt;asp:SqlDataSource&gt; 中你应该有更多的内容 - &lt;SelectParameters&gt; 部分等等 - 这就是定义什么 数据类型 a参数是.... 很可能,当你想传递一个“guid”时,它被设置为“string”
  • Reniuz,没用。马克..见上面的更新

标签: c# asp.net sql


【解决方案1】:
<SelectParameters>
                <asp:Parameter Name="UserID" Type="Guid"  />
     </SelectParameters> 

更新代码

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

【讨论】:

  • 错误 3 无法从“Type”属性的字符串表示“Guid”创建“System.TypeCode”类型的对象。 D:\Documents and Settings\Dima\My Documents\Visual Studio 2010\WebSites\WebSite10\Statistics.aspx 19
  • Type 没有 Guid 这样的属性
  • 能否指定对应命名空间的类型?
  • 错误 3 无法从“Type”属性的字符串表示“Guid”创建“System.TypeCode”类型的对象。 D:\Documents and Settings\Dima\My Documents\Visual Studio 2010\WebSites\WebSite10\Statistics.aspx 19
  • 不!我不能它不会让我写 ..Type="System.Guid"
【解决方案2】:

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

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> 

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多