Проблема с SQL-оператором и PostBackUrl

У меня есть SQL-заявление, которое я разместил на этом сайте, и я подал заявку на своем веб-сайте, который работает и вставляет имя пользователя и информацию в базу данных вскоре после того, как пользователь нажмет кнопку отправки.

Это, однако, не происходит, когда я устанавливаю свойство 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" />

1 ответ

Решение

Это приведет к cross-page postback, При нажатии на элемент управления Button текущая страница будет опубликована по указанному URL-адресу в свойстве кнопки PostbackURL. В этом случае событие нажатия кнопки не будет вызвано.

Для получения подробной информации, пожалуйста, проверьте из 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");
}
Другие вопросы по тегам