#asp.net #sql #postbackurl
#asp.net #sql #postbackurl
Вопрос:
У меня есть sql-инструкция, которую я разместил на этом сайте, и я применил на своем веб-сайте, который работает и вставляет имя пользователя и информацию в базу данных вскоре после того, как пользователь нажимает кнопку отправки.
Однако этого не происходит, когда я устанавливаю свойство PostBackUrl кнопок отправки. Когда я делаю это, данные не вставляются, и вся функция, которая выполняет инструкцию insert, кажется, пропущена (поскольку я намеренно пытался допустить ошибку,, и исключение не было выдано).
Как я могу заставить 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. Пожалуйста, опубликуйте свой код, чтобы мы могли разобраться в вашей проблеме.
2. обновлено, см. выше. когда я делаю postBackURL..it кажется, что нет времени вставлять данные .. и он быстро переходит к post URL и пропускает инструкцию insert sql
3. Это второе
INSERT
выглядит подозрительно. На мой взгляд, это будет дублировать каждую строку, находящуюся в данный момент вThreads
таблице, но с новым@TopicsID
значением дляTopicsID
. Это то, чего вы хотите?4. Что я хочу, так это перекрестно опубликовать страницу после события отправки щелчка.. sql statemetn работает .. событие click и postbackurl не работают должным образом together..so я разделил их .. я не знаю, когда запускать и передавать его на другую страницу
Ответ №1:
Это приведет
cross-page postback
. При нажатии кнопки управления текущая страница будет отправлена по указанному 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");
}
Комментарии:
1. наконец { SQLConnect. Close(); HttpContext.Current. Сервер. Передача («~/AnswerQuestion.aspx»); } даже когда я делаю это, без свойства postbackurl. он не будет вставлять мои данные .. почему
2. Как я могу настроить это так, чтобы запускалось событие click, а затем запускалось другое событие для отправки страницы …?
3. используйте ответ. Перенаправление («~/AnswerQuestion.aspx»); в конце кода я только что обновил свой ответ. теперь вы можете получить представление и удалить URL обратной отправки.
4. Ваш ответ правильный. Это то, что я сделал до того, как вы опубликовали свой комментарий.. я использовал сервер. Передача. теперь все работает