You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将单行C#创建数据库的字符串代码拆分为多行?

规范拆分C#数据库创建字符串的几种方法

嘿,这个问题我太熟了!直接按回车换行报错很正常,因为C#里的字符串插值($"")默认会把换行符也塞进字符串里,而且语法上直接断行编译器也不认。给你几种规范的拆分方式,既美观又不会踩坑:

方法1:用字符串拼接符(+)拆分

这种方式最稳妥,每一行单独用$""包裹,再用+连接,还能保证SQL语句里没有多余的换行:

string createDataBase = $"CREATE DATABASE {dataBaseName} " +
                        $"ON PRIMARY (NAME = {dataBaseName}_Primary, FILENAME = '{primaryPath}') " +
                        $", FILEGROUP {dataBaseName}_FileStreamGroup CONTAINS FILESTREAM " +
                        $"(NAME = {dataBaseName}_Filestream, FILENAME = '{filePath}')";

注意:每行末尾加个空格,避免SQL里的单词连在一起导致语法错误哦。

方法2:使用逐字插值字符串(@$"")

如果想直接换行排版,用@$""组合就行,编译器会保留你的换行格式,生成的SQL也会带换行(大部分数据库驱动都能正常处理):

string createDataBase = @$"CREATE DATABASE {dataBaseName} 
ON PRIMARY (NAME = {dataBaseName}_Primary, FILENAME = '{primaryPath}') 
, FILEGROUP {dataBaseName}_FileStreamGroup CONTAINS FILESTREAM
(NAME = {dataBaseName}_Filestream, FILENAME = '{filePath}')";

这种方式可读性最高,排版和最终SQL结构几乎一致,一眼就能看懂。

方法3:拆分成分段变量再拼接

如果你的SQL特别复杂,把每个逻辑段拆成单独变量会更易维护:

// 拆分SQL的各个逻辑部分
var dbCreation = $"CREATE DATABASE {dataBaseName}";
var primaryFileDef = $"ON PRIMARY (NAME = {dataBaseName}_Primary, FILENAME = '{primaryPath}')";
var fileStreamDef = $", FILEGROUP {dataBaseName}_FileStreamGroup CONTAINS FILESTREAM(NAME = {dataBaseName}_Filestream, FILENAME = '{filePath}')";

// 最终拼接成完整SQL
string createDataBase = $"{dbCreation} {primaryFileDef} {fileStreamDef}";

这种方式后期修改某一部分时,不用动整个长字符串,非常方便。

额外提醒

如果dataBaseName、primaryPath这些变量来自用户输入,直接用字符串插值会有SQL注入风险!这种情况建议用参数化查询,不过如果是内部固定值的话就没问题啦。

内容的提问来源于stack exchange,提问作者masiboo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:23:16