C# 一次在同一个表中执行多个insert操作
我将首先解释我的工作,然后我将说明问题出在哪里 我的应用程序通过(文件上传器)从经过身份验证的用户那里获得一个C# 一次在同一个表中执行多个insert操作,c#,asp.net,xml,performance,informix,C#,Asp.net,Xml,Performance,Informix,我将首先解释我的工作,然后我将说明问题出在哪里 我的应用程序通过(文件上传器)从经过身份验证的用户那里获得一个XML文件,然后我将存储在XML文件中的数据映射(我的意思是迁移)到数据库中的等效数据。 我通过LINQ从XML文件中获取数据 我的第一个问题 每个元素 XML文件具有等效的实体 在我的数据库里。什么是最好的和最好的 更高效的插入方式 一个数据库中有多个记录 具体表格,并保证如果 数据出错,是否回滚整个操作? 是否有一些例子说明如何做 这你对这方面有什么建议吗 验证XML数据 我的第二
XML文件,然后我将存储在XML文件中的数据映射(我的意思是迁移)到数据库中的等效数据。
我通过LINQ
从XML文件中获取数据
- 我的第一个问题
每个元素
XML文件具有等效的实体
在我的数据库里。什么是最好的和最好的
更高效的插入方式
一个数据库中有多个记录
具体表格,并保证如果
数据出错,是否回滚整个操作?
是否有一些例子说明如何做
这你对这方面有什么建议吗
验证XML数据
- 我的第二个问题:
在第一个问题中,我谈论
(插入)操作。如果
用户更改XML中的某些数据
然后我想更新我的
使用新数据创建数据库。我该怎么做
这样做?我应该比较一下吗
记录或尝试插入,如果失败,
然后更新这个记录
XML文件中的每个元素都有一个
数据库中的等效实体。什么
是最好的、性能更好的方式
在一个数据库中插入多条记录的步骤
具体表格。如果有,请提供保证
数据有什么问题吗,
请回滚整个操作
如果有一些样本可以这样做,以及
关于验证的任何建议
XML数据
这里的简单答案是:使用事务。事务的要点是为您提供一种机制,通过该机制,您可以执行多个命令,然后将它们作为单个工作单元提交,或者将它们完全回滚,从而使数据库保持一种状态,就好像您的操作从未发生过一样
在第一节中,我讲的是
(插入)操作,如果用户更改
XML文件中的一些数据,然后我想
使用新的
数据。如何对此进行比较。我应该进行比较吗
每一张唱片。如果失败,请尝试插入
然后更新此记录
如果可以很容易地避免的话,try-error-different重试模式是不可取的。您的SQL应该使用一个设计为根据现有数据有条件地插入或更新的语句(例如SQL ServerMERGE
命令;我没有Informix经验,因此无法说明它支持什么,或者MERGE
是ANSI SQL),或者您应该自己在SQL中执行此条件逻辑
XML文件中的每个元素都有一个
数据库中的等效实体。什么
是最好的、性能更好的方式
在一个数据库中插入多条记录的步骤
具体表格。如果有,请提供保证
数据有什么问题吗,
请回滚整个操作
如果有一些样本可以这样做,以及
关于验证的任何建议
XML数据
这里的简单答案是:使用事务。事务的要点是为您提供一种机制,通过该机制,您可以执行多个命令,然后将它们作为单个工作单元提交,或者将它们完全回滚,从而使数据库保持一种状态,就好像您的操作从未发生过一样
在第一节中,我讲的是
(插入)操作,如果用户更改
XML文件中的一些数据,然后我想
使用新的
数据。如何对此进行比较。我应该进行比较吗
每一张唱片。如果失败,请尝试插入
然后更新此记录
如果可以很容易地避免的话,try-error-different重试模式是不可取的。您的SQL应该使用一个设计为根据现有数据有条件地插入或更新的语句(例如SQL ServerMERGE
命令;我没有Informix经验,因此无法说明它支持什么,或者MERGE
是ANSI SQL),或者您应该自己在SQL中执行此条件逻辑。为此使用informix存储过程。
这将允许您包括处理坏数据的异常处理
然后,您可以首先将所有实体加载到临时表中,比如t_work,如果存在数据问题,则删除该表并引发一个excaption
BEGIN -- Start Exception Handling
ON EXCEPTION SET esql, eisam
DROP TABLE t_work;
RAISE EXCEPTION esql, eisam; -- rethrow the exception
END EXCEPTION
-- << Your logic here>>
BEGIN--启动异常处理
在异常集esql上,eisam
放下工作台;
引发异常esql,eisam;——重新显示异常
结束例外
-- >
有关更多详细信息,请参见此处:为此使用informix存储过程。
这将允许您包括处理坏数据的异常处理
然后,您可以首先将所有实体加载到临时表中,比如t_work,如果存在数据问题,则删除该表并引发一个excaption
BEGIN -- Start Exception Handling
ON EXCEPTION SET esql, eisam
DROP TABLE t_work;
RAISE EXCEPTION esql, eisam; -- rethrow the exception
END EXCEPTION
-- << Your logic here>>
BEGIN--启动异常处理
在异常集esql上,eisam
放下工作台;
引发异常esql,eisam;——重新显示异常
结束例外
-- >
有关更多详细信息,请参见此处:为什么否决,如果您不理解问题,我将解释更多我没有否决,但这可能是因为您在此处提出了两个无关的问题。最好把它们分成单独的问题,因为一个问题的答案与另一个问题的答案无关。是的,但我在同一个应用中面临这两个问题,我想解释整个问题。嗯,不要紧,因为你的问题是同一个应用程序的一部分,并不意味着它们实际上是相关的。为什么否决,如果你不理解这个问题,我会解释更多我没有否决,但这可能是因为你问了两个不相关的问题。最好把它们分成单独的问题,因为一个问题的答案与另一个问题的答案无关。是的,但我在同一个应用程序中面对这两个问题,我想解释整个问题。嗯,没关系,因为你的问题是同一个应用程序的一部分