【问题标题】:Get data from SQL Server table and update into XML file content从 SQL Server 表中获取数据并更新为 XML 文件内容
【发布时间】:2019-08-19 06:46:20
【问题描述】:

我想从 sql server 表中获取数据并更新为 xml 文件内容(xml 标记)。这意味着当用户更新数据库时,它也会自动更新 xml 文件的数据。问题是,这不可能吗?我在谷歌搜索解决方案,但没有。谁能帮帮我?

这是xml文件内容的示例:

<CITE>
<CITE_ONE>ABC_2015_255</CITE_ONE>
<CITE_TWO>DEF_2015_255</CITE_TWO>
<CITE_THREE>GHI_2015_255</CITE_THREE>
</CITE>

因此 sql server 表将由 CITE_ONE、CITE_TWO 和 CITE_THREE 组成。

xml文件内容中的内容必须与sql server表中的内容一致。

这是我的控制器代码部分:

// GET: Tests/Edit/5
        public ActionResult Edit(string id)
        {
            Test tests = db.Tests.Find(id);

            return View(cases);
        }

        // POST: Tests/Edit/5
        [HttpPost]
        public ActionResult Edit(Tests tests)
        {
            if (ModelState.IsValid)
            {
                db.Entry(tests).State = EntityState.Modified;
                db.SaveChanges();
                Success(string.Format("Successfully edited!"), true);
                return RedirectToAction("Index");
            }
            Danger("Please try again.");
            return View(cases);
        }

正如你们所看到的,这里我将 id 作为参数传递给编辑。可以成功编辑。我接下来想要的是,如何根据 sql server 表中的那个来更新我现有的 xml 文件?

【问题讨论】:

  • 文件中是否还有其他数据,或者只是从表返回的数据中的内容?它是来自单行的单个值还是来自表的查询结果?请提供示例和详细信息。
  • 步骤1)从数据库中读取数据,步骤2),更新xml。是的,这是可能的,但您应该先从第 1 步开始。然后尝试第 2 步,当您遇到问题时,再来看我们
  • 您可以使用 C# 创建一个小后台任务来检查数据库,例如每 1 分钟一次,如果 XML 和表之间有任何差异,则更新 XML。
  • 文件中还有一个数据,只是我想更新某些信息而已@EdneyHolder 但它必须与sql server表db相同
  • 您没有包含xml文件的格式、您尝试读取的数据或任何可以帮助我们帮助您的信息。你也没有表明你在这个问题中的位置,你知道或不知道什么,你遇到了什么错误,等等..

标签: c# model-view-controller


【解决方案1】:

首先为您关心的表和/或字段创建一个更新触发器。

接下来选择xml格式的数据

DECLARE @xmlResults varchar(max);

SET @xmlResults  = SELECT <Fields to include in reulsts>
FROM <Your Table>
WHERE <Your Where Clause>
FOR XML RAW;
);

现在输出到文件

declare @fn varchar(200) = '<Your file name including pat>';

declare @cmd varchar(8000) = concat('echo ', @xmlResults, ' > "', @fn, '"');

exec xp_cmdshell @cmd,  no_output

【讨论】:

  • 这是否意味着它会输出一个xml文件?更新现有的 xml 文件怎么样?
  • @lara "FOR XML RAW;"以 XML 格式返回数据。 "exec xp_cmdshell cmd, no_output" 执行"declare cmd varchar(8000) = concat('echo', xmlResults, ' > "', fn, '"');"它说 To echo (write) the value of xmkresults (The xml results of the query) to the file fn
猜你喜欢
  • 2014-05-10
  • 2012-05-10
  • 2021-12-26
  • 2021-09-05
  • 2015-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多