C# 从proc返回位值??捕获到NullReference异常?

C# 从proc返回位值??捕获到NullReference异常?,c#,sql-server,C#,Sql Server,我正在测试连接字符串用户ID是否为sys Admin 但是当我尝试返回位的值时,我的代码不断中断 为此,我使用以下存储过程: ALTER PROCEDURE [dbo].[CheckIfAdmin] @SQLLoginName nvarchar(50), @IsAdmin bit OUTPUT As SET @IsAdmin = IS_SRVROLEMEMBER('sysadmin', @SQLLoginName) Print @IsAdmin Select @IsAdmin 为了检索该

我正在测试连接字符串用户ID是否为sys Admin

但是当我尝试返回位的值时,我的代码不断中断

为此,我使用以下存储过程:

ALTER PROCEDURE [dbo].[CheckIfAdmin]
@SQLLoginName nvarchar(50),
@IsAdmin bit OUTPUT

As

SET @IsAdmin = IS_SRVROLEMEMBER('sysadmin', @SQLLoginName)

Print @IsAdmin
Select @IsAdmin
为了检索该值,我使用以下C代码:

错误消息:

捕获到NullReference异常。
对象引用未设置为对象的实例。

您错过了
executexxxx
()方法


您没有在打开和关闭连接之间执行操作。

它现在跳出到:cmd1.ExecuteNonQuery();出现以下消息:无法将参数值从字符串转换为日期时间。请验证SP参数类型。
public bool CheckIfIsAdmin(string procedure, SqlParameter[] parameters)
        {
            try
            {
                SqlCommand cmd1 = new SqlCommand(procedure, con);
                cmd1.CommandType = CommandType.StoredProcedure;
                foreach (SqlParameter p in parameters)
                {
                    cmd1.Parameters.Add(p);
                }
                SqlParameter IsAdmin = new SqlParameter("@IsAdmin", SqlDbType.Bit);
                IsAdmin.Direction = ParameterDirection.Output;
                cmd1.Parameters.Add(IsAdmin);
                con.Open();      
                con.Close();             
                MessageBox.Show("Is a admin = " + IsAdmin.Value.ToString()); // this should display 1 or 0 
                return ture
            }
            catch (Exception ex)
            {
                MessageBox.Show("" + ex);
                return false;            
            }
        }
 con.Open();      
 cmd1.ExecuteNonQuery(); // cmd1.ExecuteScalar();
 con.Close();