C# 使用ExecuteScalar读取SQL打印结果

C# 使用ExecuteScalar读取SQL打印结果,c#,sql-server,localdb,C#,Sql Server,Localdb,我想检查表是否存在,如下代码所示,但结果为null SqlCommand command = connection.CreateCommand(); command.CommandText = "IF OBJECT_ID('MyTable', 'U') IS NOT NULL PRINT 1 ELSE PRINT 0"; int? result = command.ExecuteScalar() as int?; if(result.GetValueOrDefault(0) == 0) {

我想检查表是否存在,如下代码所示,但结果为null

SqlCommand command = connection.CreateCommand();
command.CommandText = "IF OBJECT_ID('MyTable', 'U') IS NOT NULL PRINT 1 ELSE PRINT 0";
int? result = command.ExecuteScalar() as int?;

if(result.GetValueOrDefault(0) == 0)
{ 
     // no table.
}
当我在查询窗口中直接执行SQL语法时,它工作得很好

IF OBJECT_ID('MyTable', 'U') IS NOT NULL SELECT 1 ELSE SELECT 0

如何正确读取查询结果?

使用
Select
而不是
PRINT
。打印不会返回行,而是打印到查询窗口

IF OBJECT_ID('MyTable', 'U') IS NOT NULL SELECT 1 ELSE SELECT 0

根据答案使用
选择
是目前为止最简单的方法。如果确实要使用
打印
,可以绑定事件