【发布时间】:2018-08-21 12:06:19
【问题描述】:
我有 C# WinForm 程序,我需要将快速大数据插入到 sql-server。
sql-server 在 cloude server 中,我在本地计算机上加载的文件。
文件是文本(制表符分隔)
d:\TEST\TEST.txt 并拥有完全权限
BAR DES MAK
111 aaa 222
333 bbb 333
.
.
sql-server 表是CatTbl:
BAR nvarchar(250)
DES nvarchar(250)
MAK nvarchar(250)
我尝试这样插入:
SQL = @"BULK INSERT CatTbl FROM 'd:\TEST\TEST.txt' WITH (CODEPAGE=1255,FIELDTERMINATOR = '\t')";
Cmd = new SqlCommand(SQL, Conn);
Cmd.ExecuteNonQuery();
Cmd.Dispose();
当我在本地 sql-server 上工作时,它的效果非常好。
但在 cloude sql-server 中出现错误:
Cannot bulk load because the file "d:\TEST\TEST.txt" could not be opened. Operating system error code 21(The device is not ready.).
- 请注意sql-server连接成功
我在网上搜索并没有找到解决问题的答案。我会很感激一些帮助
【问题讨论】:
-
d:\TEST\TEST.txt是否存在于您的云 SQL Server 上?你在使用 Azure SQL 吗?还有什么? -
如果该文件可在客户端访问,请在您的应用中使用 SqlBulkCopy 而不是 T-SQL
BULK INSERT。 -
d:\TEST\TEST.txt 在我的云中不存在。我不使用 Azure SQL 我使用常规的 SQL 服务器。客户端上的文件 TEST.txt
标签: c# sql-server database winforms