C# 使用ExecuteScalar读取SQL打印结果
我想检查表是否存在,如下代码所示,但结果为nullC# 使用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) {
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
根据答案使用
选择是目前为止最简单的方法。如果确实要使用打印
,可以绑定事件