生成使用 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 脚本的主要内容,如果未能解决你的问题,请参考以下文章
.NET(C#) Dapper Oracle(ODP.NET)或SQL Server 执行多条查询(select)语句的方法代码