我有此查询,该查询在承载供应商应用程序的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();
}
}
}
答案 0 :(得分:2)
没事。
documentation for ExecuteNonQuery
说:
对于UPDATE,INSERT和DELETE语句,返回值是该命令影响的行数。当要插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受一个或多个触发器影响的行数。 对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值为-1。
由于您正在执行的命令不是UPDATE
,INSERT
或DELETE
,因此返回值将始终为-1
。