2012-01-07 64 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