生成使用 c# 代码执行的查询的 sql 脚本

Posted

技术标签:

【中文标题】生成使用 c# 代码执行的查询的 sql 脚本【英文标题】:generating sql script of query performed using c# code 【发布时间】:2015-04-15 14:59:37 【问题描述】:

嗨,我正在做一个项目,我正在为在其中一个列中包含 xml 数据的表上执行的 CRUD 操作生成 sql 查询。我已经成功生成了 sql 查询,现在我正在 textarea 中显示这些查询并将这些查询保存在 .txt 文件中,但现在我希望这些查询可以保存到 .sql 文件中。现在我将我的查询存储在一个带有以下代码的文本文件中。

查询更新

sqlQuery = "update tblCCBT_Step_Page_Text_Xml set Xml_XmlData.modify('replace value of (/page/*[position()="+xmlNodeIndex+"]/text())[1] with " + newValue + " ') where Xml_Id = " + xmlId;
            string a = Server.MapPath("~/Content/dbScripts");
            string dt = System.DateTime.Now.ToShortTimeString();
            dt = dt.Replace(":", "-");
            FileStream fs1 = new FileStream(a + "\\editNode_"+dt+".txt", FileMode.OpenOrCreate, FileAccess.Write);
            StreamWriter writer = new StreamWriter(fs1);
            writer.Write(sqlQuery);
            writer.Close();

我希望将我的查询保存在 .sql 文件中。请建议如何进一步进行。谢谢

【问题讨论】:

您存储在文本文件中的文本是您要存储在 .sql 文件中的完整查询吗? 您是在问如何使用+".sql" 而不是+".txt" 吗?还是我错过了什么? 是的,我想将查询保存在 .sql 文件而不是文本文件中 使用 FileStream fs1 = new FileStream(a + "\\editNode_"+dt+".sql", FileMode.OpenOrCreate, FileAccess.Write);而不是 FileStream fs1 = new FileStream(a + "\\editNode_"+dt+".txt", FileMode.OpenOrCreate, FileAccess.Write); 【参考方案1】:

.sql 文件与 .txt 文件相同,只是扩展名不同。这可以通过在您的桌面上放置一个新文档,将其命名为 query.txt,将 SQL(类似 SELECT 'A' 的简单名称)放入其中,保存并将其重命名为 query.sql 来测试。

您应该能够将“.txt”替换为“.sql”。

【讨论】:

【参考方案2】:

只需将 .txt 替换为 .sql,我就可以将查询保存到 .sql 文件。

更新代码

sqlQuery = "update tblCCBT_Step_Page_Text_Xml set Xml_XmlData.modify('replace value of (/page/*[position()="+xmlNodeIndex+"]/text())[1] with " + newValue + " ') where Xml_Id = " + xmlId;
            string a = Server.MapPath("~/Content/dbScripts");
            string dt = System.DateTime.Now.ToShortTimeString();
            dt = dt.Replace(":", "-");
            FileStream fs1 = new FileStream(a + "\\editNode_"+dt+".sql", FileMode.OpenOrCreate, FileAccess.Write);
            StreamWriter writer = new StreamWriter(fs1);
            writer.Write(sqlQuery);
            writer.Close();

【讨论】:

以上是关于生成使用 c# 代码执行的查询的 sql 脚本的主要内容,如果未能解决你的问题,请参考以下文章

java如何根据实体类图生成sql脚本?

如何使用 C# 执行 .SQL 脚本文件

.NET(C#) Dapper Oracle(ODP.NET)或SQL Server 执行多条查询(select)语句的方法代码

在 SQL 中使用视图是不是更好,或者我应该只在我的 C# 代码中使用查询[关闭]

如何在 C# 中计时执行 SQL 查询?

c#执行大型SQL语句[关闭]