2

このサイトに投稿したSQLステートメントがあり、ユーザーが送信ボタンを押した直後に機能し、ユーザーの名前と情報をデータベースに挿入するSQLステートメントを自分のWebサイトに適用しました。

ただし、送信のボタンのPostBackUrlプロパティを設定した場合、これは発生しません。これを行うと、データが挿入されず、挿入ステートメントの実行を保持する関数全体がスキップされているように見えます(意図的に間違えようとしたため、例外はスローされませんでした)。

postBackUrlを機能させて、データを挿入する時間を確保するにはどうすればよいですか?

動作するsqlStatment:

 insertCommand.Append("DECLARE @TopicsId int; INSERT INTO Topics(Theme,Topics,Date)");
    insertCommand.Append("VALUES(@topic,@subTopic,GETDATE())");
    insertCommand.Append("SET @TopicsId = SCOPE_IDENTITY()");

    insertCommand.Append(" INSERT INTO Threads(UsersID,TopicsID,Date,ThreadTitle,ThreadParagraph,ThreadClosed,Views,Replies,PageNumber)");
    insertCommand.Append(" SELECT @uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0,0,0,FLOOR(Count(t.TopicsID)/20)");
    insertCommand.Append(" FROM Threads AS d INNER JOIN Topics AS t ON d.TopicsID=t.TopicsID");

次の場合に機能します。

<asp:Button ID="sendButton1" runat="server" Text="שלח" Width="60px" 
            onclick="sendButton1_Click"  />

sqlStatementが機能しない場合:

<asp:Button ID="sendButton1" runat="server" Text="שלח" Width="60px" 
            onclick="sendButton1_Click" PostBackUrl="~/AnswerQuestion.aspx" />
4

1 に答える 1

1

これにより、が発生し cross-page postbackます。Buttonコントロールがクリックされると、ボタンのPostbackURLプロパティで指定されたURLに現在のページが投稿されます。この場合、ボタンクリックイベントはトリガーされません。

詳細については、MSDNから確認してください

EditLこれを簡単に試してみませんか...

protected void Button1_Click(object sender, EventArgs e)
{
///.....Your Code.....
insertCommand.Append("DECLARE @TopicsId int; INSERT INTO Topics(Theme,Topics,Date)");
insertCommand.Append("VALUES(@topic,@subTopic,GETDATE())");
insertCommand.Append("SET @TopicsId = SCOPE_IDENTITY()");

insertCommand.Append(" INSERT INTO Threads(UsersID,TopicsID,Date,ThreadTitle,ThreadParagraph,ThreadClosed,Views,Replies,PageNumber)");
insertCommand.Append(" SELECT @uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0,0,0,FLOOR(Count(t.TopicsID)/20)");
insertCommand.Append(" FROM Threads AS d INNER JOIN Topics AS t ON d.TopicsID=t.TopicsID");

 ///..At the end add this......
 Response.Redirect("~/AnswerQuestion.aspx");
}
于 2011-06-13T06:44:14.870 に答える