【关于SqlCommand执行脚本和查询分析器执行脚本的区别】 我现在想通过C#读取一个sql脚本做程序的升级,我的脚本在查询分析器里面可以正常执行,但是通过SqlCommand以Text的形式执行就不行了,有的地方说去掉Go,有的说要加 ; ,修改之后可以执行,但是还是不稳定,有的存储过程中的参数会报错。为了找到一个安全的执行方法,不知道大家有没有这方面的研究? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要自己作个分隔sql代码的函数才行。一般用GO 作分隔就可以了。直接读取文本里面的sql代码是不行的。 /// <summary> /// Sql文本转换为批量执行Sql脚本 /// </summary> /// <param name="sr"></param> /// <returns></returns> static public List<string> SqlText2SqlList(System.IO.StreamReader sr) { List<string> SqlList = new List<string>(); string commandText = ""; string varLine = ""; while (sr.Peek() > -1) { varLine = sr.ReadLine(); if (varLine.Length == 0) { continue; } if (varLine != "GO") { commandText += varLine; commandText += "\r\n"; } else { SqlList.Add(commandText); commandText = ""; } } return SqlList; } Server.HtmlDecode("<STRONG><EM><U>11111& 请教一下BS大数据量查询的问题 【提问】构造函数与实例化 http://hi.baidu.com/359864746/blog最后为什么是文件夹而不是页面,具体是怎么设计的呢 事件问题 请教一个关于ajax技术问题 怎么样把字符串数据绑到Repeater上 用Array.sort(),如何按文件名排序? 极其简单的问题,忘了函数,如何将页面定位到新的页面?答者有分 关于 CSRF 防御小提问 浏览器兼容 多站点,多服务器下如何实现同一ID,只能一个地方登录
一般用GO 作分隔就可以了。
直接读取文本里面的sql代码是不行的。
/// Sql文本转换为批量执行Sql脚本
/// </summary>
/// <param name="sr"></param>
/// <returns></returns>
static public List<string> SqlText2SqlList(System.IO.StreamReader sr)
{
List<string> SqlList = new List<string>();
string commandText = "";
string varLine = "";
while (sr.Peek() > -1)
{
varLine = sr.ReadLine();
if (varLine.Length == 0)
{
continue;
}
if (varLine != "GO")
{
commandText += varLine; commandText += "\r\n";
}
else
{
SqlList.Add(commandText);
commandText = "";
}
}
return SqlList;
}