【问题标题】:User.Identity.Name to SQL parameterUser.Identity.Name 到 SQL 参数
【发布时间】:2013-04-10 09:35:36
【问题描述】:

我有这个代码:

protected void Page_Load(object sender, EventArgs e)
{
        SqlDataSource4.SelectParameters["zadavatel"].DefaultValue = this.Page.User.Identity.Name;
}

标记:

<InsertParameters>
    <asp:Parameter Name="zadavatel" Type="String" />
</InsertParameters>

<asp:SqlDataSource ID="SqlDataSource4" runat="server" 
     ConnectionString="<%$ ConnectionStrings:fotbalConnectionString %>" 
     DeleteCommand="DELETE Diskuze WHERE Id_Diskuze=@Id_Diskuze" 
     SelectCommand="SELECT * FROM [Diskuze] WHERE ([Id_Zapasu] = @Id_Zapasu) ORDER BY [Datum_Vytvoreni] ASC" 
     InsertCommand="INSERT INTO Diskuze (Autor, TextD, Ip_Adresa, Id_Zapasu) VALUES (@zadavatel, @TextD, '127.0.0.1', @Id_zapasu)">

我想将参数 zadavatel 插入 Autor...但我收到此错误:

System.NullReferenceException: Odkaz na objekt není nastaven na instanci objektu。 (对象引用未设置为对象的实例。)

我不知道问题出在哪里:/

【问题讨论】:

  • 但是如果你想插入 - 你为什么要在SelectParameters 上设置参数值??你不应该设置InsertParameters 吗?
  • 对不起,一个错误的副本...我编辑了它...同样的错误
  • 我搜索它!它必须是 SqlDataSource4.InsertParameters["zadavatel"].Def
  • 你确定使用SqlDataSource是件好事吗?甚至更多,4 SqlDataSources?这是一个糟糕的设计,我祈祷 MS 有一天会改变他们的想法并永远摧毁这种可能性。当然,您有一些难以调试的问题。 UI 中的连接字符串和 SQL 命令 :((

标签: asp.net sql select insert sqldatasource


【解决方案1】:

您应该使用InsertParameters["@zadavatel"] 而不是SelectParameters["zadavatel"]。

【讨论】:

    猜你喜欢
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2011-04-21
    • 2015-11-28
    • 1970-01-01
    相关资源
    最近更新 更多