Проблема с SQL-оператором и PostBackUrl - PullRequest
2 голосов
/ 13 июня 2011

У меня есть заявление 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 Ответ

1 голос
/ 13 июня 2011

Это приведет к 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");
}
...