Asp excel получает доступ к уникальному user_id

Я очень новичок в ASP и работаю над проектом, используя ASP, а не ASP.NET.

У меня есть небольшое приложение, в котором после входа в систему пользователь может загрузить файл .xls, а затем запись из этого файла Excel вставляется в базу данных Access.

Мои образцы файлов проекта работают нормально, т.е. файл загружен и вставлен в Access. Моя проблема в том, что я хочу вставить данные из этого файла Excel в Access с уникальным user_id конкретного пользователя, потому что многие пользователи могут вставлять файлы Excel в одну и ту же таблицу. Так что, когда пользователь нажимает «просмотреть записи», он должен видеть только свои записи, а не записи других.

И еще одна вещь - выяснить, как сохранять файлы с уникальными именами файлов, соответствующими вошедшему в систему пользователю, чтобы избежать дублирования файлов.

Это URL-адрес, из которого я получил код для использования файлов для загрузки и вставки данных Excel в Access: http://shotdev.com/asp/asp-excel/asp-upload-excel-import-to-database/.


person asad_ahmad    schedule 07.01.2012    source источник
comment
Это должно быть довольно простым изменением, чтобы добавить целочисленное значение (идентификатор пользователя) к коду, который вставляется в базу данных. Не могли бы вы опубликовать код, который у вас есть до сих пор.   -  person Rory McCrossan    schedule 07.01.2012
comment
Пожалуйста, еще раз проверьте, что я загрузил закодированный   -  person asad_ahmad    schedule 07.01.2012
comment
Ответ на ваш вопрос ниже. Я изменил предоставленный вами код и включил идентификатор пользователя.   -  person webb    schedule 08.01.2012


Ответы (1)


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

пример ваших таблиц будет.

tblUsers (userid, myuser, mypasscode )

tblfiles (идентификатор файла, имя файла, заголовок файла, идентификатор пользователя)

В вашем случае я добавил идентификатор пользователя в столбцы таблицы, а также добавил переменную сеанса для вошедшего в систему пользователя.

For  i = 2 To 5
If Trim(xlSheet1.Cells.Item(i,1)) <> "" Then  
strSQL = ""  
strSQL = strSQL &"INSERT INTO customer2 "  
strSQL = strSQL &"(userid, CustomerID,Name,Email,CountryCode,Budget,Used) "  
strSQL = strSQL &"VALUES "  
strSQL = strSQL &"('& sessionvariable &', "&xlSheet1.Cells.Item(i,1)&"','"&xlSheet1.Cells.Item(i,2)&"',     '"&xlSheet1.Cells.Item(i,3)&"' "  
strSQL = strSQL &",'"&xlSheet1.Cells.Item(i,4)&"','"&xlSheet1.Cells.Item(i,5)&"',     '"&xlSheet1.Cells.Item(i,6)&"') "  
Set objExec = Conn.Execute(strSQL)  
Set objExec = Nothing  
End IF  
Next  
person webb    schedule 07.01.2012
comment
-1. Включает дыру для SQL-инъекций. Лист Excel загружается и, следовательно, может содержать вредоносный контент. Использование конкатенации строк для построения оператора SQL опасно, используйте вместо этого параметризованную команду. - person AnthonyWJones; 08.01.2012
comment
Я только что изменил код, который он предоставил, возможно, он захочет создать свою собственную процедуру, а не копировать и вставлять из Интернета. - person webb; 08.01.2012