c# - 难以从 C# 执行“执行”查询
问题描述
我有在托管供应商应用程序的 SQLServer 上运行的这个查询。
exec sp_configure 'show advanced options',1
RECONFIGURE
exec sp_configure 'Ole Automation Procedures', 1
RECONFIGURE
exec sp_configure 'show advanced options', 0
RECONFIGURE
exec CreateMunisExportFile
exec sp_configure 'show advanced options',1
RECONFIGURE
exec sp_configure 'Ole Automation Procedures', 0
RECONFIGURE
exec sp_configure 'show advanced options', 0
RECONFIGURE
我想使用 C# 远程执行它。
我正在使用 Visual Studio 2015,但无法访问允许您创建Server
对象的 SQLServer 模块。我丢失了该帖子的链接,但也一直在查看 SO、this-post和that-post中的以下和其他帖子。
我在以下函数中从 ExecuteNonQuery 获得 -1,并且想知道如何获取更多错误信息。
private void btRunQuery_Click(object sender, EventArgs e)
{
using (var conn = new SqlConnection("Data Source=SERVER\\TICKETTRAK;Initial Catalog=TTRAK9.4.20;User Id=sa;Password=xxxyyyyz;Pooling=false"))
{
string script = File.ReadAllText(@".\SpecialTickeTrakExport_20181106.sql");
using (SqlCommand mySqlCmd = new SqlCommand(script))
{
conn.Open();
mySqlCmd.Connection = conn;
var result = mySqlCmd.ExecuteNonQuery();
conn.Close();
}
}
}
解决方案
什么都没有。
对于 UPDATE、INSERT 和 DELETE 语句,返回值是受命令影响的行数。当正在插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受一个或多个触发器影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,则返回值也是 -1。
由于您正在执行的命令不是UPDATE
、INSERT
或DELETE
,因此返回值将始终为-1
。
推荐阅读
- assembly - REP INSW 是做什么的?
- testing - Flutter 中的小部件测试失败,但将 Flutter 升级到 1.9.1 后,每个设备中的屏幕都可以正确渲染
- javascript - 在 Phonegap 中使用 jQuery 的问题
- laravel - laravel 中的慢查询
- python-3.x - 自适应阈值如何计算像素的阈值?
- java - Spring MVC 安全性:创建名为“springSecurityFilterChain”的 bean 时出错
- json - vertx 类转换异常
- java - Ajax 调用失败 - NetworkError: 无法在“XMLHttpRequest”上执行“发送”
- java - 应用程序在 Android Studio 中停止,但它可以编译
- kubernetes - Kong Ingress Controller 对 Kong Plugins 没有影响