首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从客户端计算机读取数据并将其保存到数据库,而无需保存文件或将其上传到服务器

从客户端计算机读取数据并将其保存到数据库,而无需保存文件或将其上传到服务器
EN

Stack Overflow用户
提问于 2018-04-17 03:20:26
回答 1查看 36关注 0票数 0

我有一个应用程序,用户可以保存客户的位置逐一。但如果客户有多个位置,则逐个输入将花费大量时间。所以我需要一个机制,用户可以做一个大容量导入,这意味着他们可以保存在csv或excel文件中的所有位置,所有我需要做的是逐个读取所有行,并将其保存到数据库,而不需要保存实际文件或上传文件到服务器。

我正在寻找一个解决方案,我可以读取csv文件在内存中,通常文件大小将小于5MB。

目前,当我在自己的机器上这样做时,它可以工作(因为我已经对文件路径进行了硬编码),但是当服务器和客户端在不同的机器上时,它不能工作。

这是我用来解析csv的代码

代码语言:javascript
代码运行次数:0
运行
复制
        try
        {
            using (TextFieldParser parser = new TextFieldParser(@"C:\Users\temp\docs\Location.csv"))
            {
                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters(",");
                parser.ReadLine();

                var row= new ImportLocationModel();

                while (!parser.EndOfData)
                {
                    row=ImportLocationModel.FromFields(parser.ReadFields();                  
              clientFindProviderApi.InsertUpdateCustomerListLocation1(list); // saving location in database. 
                }

                return true;
            }
        }
EN

回答 1

Stack Overflow用户

发布于 2018-04-17 03:34:43

在不上传数据的情况下将数据上传到服务器是不可能的。您也许可以避免将数据存储在磁盘上。只需将其缓存在MemoryStream中,然后将像所有其他未使用的托管内存一样被收集。

然而,目前还不清楚这是否是你真正需要/想要的。这听起来更像是您需要/应该使用分布式数据库。一旦你在客户端有了一个镜像/缓存数据库,将它与服务器上的Master同步(反之亦然)就变成了一件DMBS的事情。

您不应该对文件大小有任何疑问。“防呆系统的开发者低估了笨蛋的聪明才智。”例如,某些用户将创建要以100 MiB大小同步的文件/数据。另外,假设你的客户可能是一部手机,当时的互联网连接非常糟糕。因此,您应该以某种方式将同步移动到异步任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49864766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档