Asp.net 建筑配件方案和批量插入

Asp.net 建筑配件方案和批量插入,asp.net,sql,schema,bulkinsert,Asp.net,Sql,Schema,Bulkinsert,我开发了一个汽车服务的自动化应用程序。我已经启动了附件模块,但我无法想象我应该如何构建数据模型模式 我在一个文本文件中获得了附件的数据,逐行而不是cvs或ext…,因此,我按子字符串分割主题。每个月,工厂都会将数据文件发送给服务部门。它包括价格、名称、代码等。每个月都会更新价格。我认为bulkinsert是一个很好的选择,可以将数据传输到SQL,但它并不能解决我的问题。我不想重复的数据只是为了有新的价格。我想只在另一个表中插入价格,并在附件-附件之间建立关系,但有时,一些新附件可以添加到列表中,

我开发了一个汽车服务的自动化应用程序。我已经启动了附件模块,但我无法想象我应该如何构建数据模型模式

我在一个文本文件中获得了附件的数据,逐行而不是cvs或ext…,因此,我按子字符串分割主题。每个月,工厂都会将数据文件发送给服务部门。它包括价格、名称、代码等。每个月都会更新价格。我认为bulkinsert是一个很好的选择,可以将数据传输到SQL,但它并不能解决我的问题。我不想重复的数据只是为了有新的价格。我想只在另一个表中插入价格,并在附件-附件之间建立关系,但有时,一些新附件可以添加到列表中,因此我必须检查附件表的每一行。另一方面,我必须保留配件的数量、发票等

顺便说一下,他们每个月发送70000条线路。有人能帮我吗


谢谢。

70000行不是一个大文件。您必须自己解析这个文件,并根据其中包含的数据发出普通的insert和update语句。对于这种大小的数据,不需要使用批量操作

最常见的方法是编写一个接受所有参数的简单SQL语句,然后执行以下操作:

if(exists(select * from YourTable where <exists condition>))
    update YourTable set <new values> where <exists condition>
else
    insert into YourTable (<columns>) values(<values>)
或者,您可以尝试重写此语句以使用T-SQL语句

在哪里

表示需要检查的内容,以查看该项是否已存在 要更新的列的Column=value语句集 为新项目插入数据的列集 对应于上一列列表的值集
然后,您将在文件中的每一行上循环,将数据解析为参数值,然后使用这些参数运行上面的SQL语句。

谢谢您的回答。在我写文章之前,我通过StreamReader读取文件,并将其加载到DataTable中,然后通过SqlBulkCopy发送。但是你说了,我不需要复印件。好的,我同意这一点,但是在更新或插入数据之前,我应该应用什么样的工作流程来处理序号问题呢?从数据库中选择数据并与新数据进行比较,然后插入新行并更新旧行并不是一个好的答案。我想:我可以请您帮忙吗?谢谢你的回答,我要试试。我会告诉你结果:合并是最好的结果:D。谢谢