所以這個錯誤確實是一個權限錯誤,正如@sandeep rawat所說的那樣,如果您願意的話,您可以使用他的答案。如果您想在系統中執行此操作,我想與您分享我所做的事情。
首先,我想道歉一些可能在回答這個問題時至關重要的缺點。 1)我忘了提及,系統創建並保存在我的電腦中,該電腦有一個域和一個管理員,我的用戶帳戶需要管理員權限才能更改任何內容(這也是一個權限錯誤)
2)我創建的存儲過程在我試圖從我的用戶賬戶中裝載數據時不起作用。我試着用下面的代碼使用存儲過程:
BULK INSERT temptable
FROM 'C:\Users\MyUser\Documents\Visual Studio 2010\Projects\TestUploader\TestUploader\bin\Debug\MyCSV.csv'
WITH
(
FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n'',
MAXERRORS = 100,
FIRSTROW = 2
)
而且它沒有工作,它給出了在問題中陳述的錯誤。
所以這就是我所做的。
1)I進口system.security.accessControl
Imports System.Security.AccessControl
2)I創建在C文件夾:\
Dim folderName As String
folderName = "C:\CSVUPLOADS\"
'check if folder exists, if not, create folder
If (Not System.IO.Directory.Exists(folderName)) Then
System.IO.Directory.CreateDirectory(folderName)
End If
3)授予訪問該文件夾
Dim FolderInfo As IO.DirectoryInfo = New IO.DirectoryInfo(folderName)
Dim FolderAcl As New DirectorySecurity
FolderAcl.AddAccessRule(New FileSystemAccessRule(UserAccount, FileSystemRights.Modify, InheritanceFlags.ContainerInherit Or InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow))
FolderInfo.SetAccessControl(FolderAcl)
4)然後我從原始位置重新創建文件,並將其放入新文件夾中。
fileName = "dataUpload.csv"
fileName = folderName & fileName
'Create CSV file
File.Create(fileName).Dispose()
完成上述創建的步驟後,即使在部署環境中,我現在也可以讀取CSV文件。
這些步驟的優點是,您不必爲某些文件夾添加權限。
缺點是,我必須創建一個系統,可以創建,複製和定位我需要到另一個位置的CSV文件。
請注意,我已經爲此創建了一個系統,而不僅僅是一個SQL腳本,所以上面的代碼是不完整的。以上代碼僅討論瞭如何創建新文件夾和新的CSV文件,該文件可以通過SQL讀取,而無需手動授予權限。因此,如果您選擇這樣做,您必須研究如何從CSV文件獲取數據到新的CSV文件,調用存儲過程,然後進行批量插入。
P.S - 我不會將此標記爲答案,而只是作爲選項,因爲真正的答案是權限。
嗨這是多大的文件..我懷疑有空間問題。 –
它的938個字節的數據先生。 –
嘗試給文件/文件夾下的用戶完全訪問其SQL服務正在運行... –