2012-01-07 67 views
1

我很新,ASP和使用ASP而不是ASP.NET的項目。Asp excel訪問唯一user_id

我有一個小應用程序,其中登錄後,用戶可以上傳.xls文件,然後將該excel文件中的記錄插入Access數據庫。

我的示例項目文件工作正常,即上傳文件並將其插入到Access中。我的問題是,我想用該特定用戶的唯一user_id將Excel文件中的數據插入到Access中,因爲許多用戶可以將Excel文件插入到同一張表中。所以當用戶點擊「查看記錄」時,他應該只看到他的記錄,而不看別人的記錄。

而另一件事是搞清楚如何保存與登錄用戶相對應的唯一文件名的文件,以避免文件重複。

這是我從中獲取使用文件上傳和將Excel數據插入到Access中的代碼的URL:http://shotdev.com/asp/asp-excel/asp-upload-excel-import-to-database/

+0

它應該是一個相當直接的修改,將一個整數值(UserID)添加到插入數據庫的代碼中。你可以發佈你到目前爲止的代碼嗎? – 2012-01-07 09:41:28

+0

請再次檢查我已上傳編碼 – 2012-01-07 10:30:16

+0

您的問題的答案如下。我修改了您提供的代碼幷包含用戶標識。 – webb 2012-01-07 21:06:00

回答

-1

如果您有用戶的登錄頁面,則將用戶標識存儲在會話變量中,然後當用戶上傳文件時,將會話變量添加到上傳文件的插入例程中。

你的表格就是一個例子。

向tblUsers(用戶ID,爲myuser,mypasscode)

tblfiles(FILEID,文件名,filetitle,用戶ID)

對於你的情況,iv'e添加用戶ID到表列,還爲登錄用戶添加了會話變量。

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 
+0

-1。包含一個SQL注入漏洞。 Excel工作表已上傳,因此可能包含惡意內容。使用字符串連接來構建SQL語句是危險的,請改用參數化命令。 – AnthonyWJones 2012-01-07 20:45:18

+0

我剛剛修改了他提供的代碼,他可能想創建自己的例程而不是從網上覆制和粘貼。 – webb 2012-01-07 21:11:52