Значение сеанса ASP - PullRequest
       17

Значение сеанса ASP

0 голосов
/ 10 августа 2009

Я устанавливаю сессию MM_CustomerID в своем коде, а затем дальше вниз по странице, мне нужно вставить значение этой сессии в таблицу. Но каждый раз, когда я пытаюсь сделать это, появляется неверное имя столбца 'varCustomerID'.

В верхней части страницы у меня есть этот код;

<% 
set rscustomerid = Server.CreateObject("ADODB.Recordset")
rscustomerid.ActiveConnection = CmdAddCustomer.ActiveConnection
rscustomerid.Source = "SELECT @@IDENTITY as MaxCustomersID  FROM Customers"
rscustomerid.CursorLocation = 2
rscustomerid.LockType = 3
rscustomerid.Open()
Session("MM_CustomerID")=rscustomerid("MaxCustomersID")
Session("MM_UserAuthorization") = "5"
%>

Затем, далее, я пытаюсь установить переменную varCustomerID равной сеансу MM_CustomerID;

<%
varCustomerID = Session("MM_CustomerID")
%>

А затем попробуйте вставить значение этой переменной varCustomerID в таблицу Orders следующим образом;

<% 
'Insert record into Orders recordset when form is submitted
'and store the unique OrderID
'Version Date: 09 August 2009
set CmdAddOrder = Server.CreateObject("ADODB.Command")
CmdAddOrder.ActiveConnection = MM_dbconn_STRING
CmdAddOrder.CommandText = "INSERT INTO Orders (OrderCustomer,OrderGrandTotal,OrderStatus) VALUES (varCustomerID,0.00,3)"
CmdAddOrder.CommandType = 1
CmdAddOrder.CommandTimeout = 0
CmdAddOrder.Prepared = true
CmdAddOrder.Execute()
%>

Я задавался вопросом, сможет ли кто-нибудь помочь? Возможно, есть более простой способ просто вставить значение сеанса в таблицу вместо создания для него переменной?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 10 августа 2009

Вам нужно изменить текст команды sql на:

"INSERT INTO Orders (OrderCustomer, OrderGrandTotal, OrderStatus) VALUES (" + varCustomerID + ", 0,00,3)"

Однако вы можете быть уязвимы для SQL-инъекций ... на самом деле вы должны параметризовать этот запрос:

http://aspnet101.com/aspnet101/tutorials.aspx?id=1

0 голосов
/ 11 августа 2009

Вам нужно привести varCustomerID к строке для запроса. Небольшое изменение в ответе Пола должно заставить вас работать, но, как он говорит, вы должны быть осторожны с инъекционными атаками.

"INSERT INTO Orders (OrderCustomer,OrderGrandTotal,OrderStatus) VALUES (" & varCustomerID & ",0.00,3)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...