Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlCommand.ExecuteScalar避免为null_C#_Mysql_Scalar - Fatal编程技术网

C# SqlCommand.ExecuteScalar避免为null

C# SqlCommand.ExecuteScalar避免为null,c#,mysql,scalar,C#,Mysql,Scalar,问题是我有这个密码 var ojv = xmd.ExecuteScalar().ToString(); if (ojv != null) { Console.WriteLine(ojv); var up = CreateQuery(); up.CommandText = "UPDATE characters SET items=@items WHERE accId=@accId AND cha

问题是我有这个密码

var ojv = xmd.ExecuteScalar().ToString();
        if (ojv != null)
        {
            Console.WriteLine(ojv);
            var up = CreateQuery();
            up.CommandText = "UPDATE characters SET items=@items WHERE accId=@accId AND charId=@charId;";
            up.Parameters.AddWithValue("@items", ojv);
            up.Parameters.AddWithValue("@accId", acc.AccountId);
            up.Parameters.AddWithValue("@charId", charId);
            up.ExecuteNonQuery();
            var del = CreateQuery();
            del.CommandText = "DELETE FROM shop WHERE accId=@accId AND chrId=@chrId;";
            del.Parameters.AddWithValue("@accId", acc.AccountId);
            del.Parameters.AddWithValue("@chrId", charId);
            del.ExecuteNonQuery();
        }

但是如果没有ovj,它将返回null,我需要避免这种情况,有没有办法让ExecuteScalar在没有找到值的情况下不会返回null

如果没有结果集,ExecuteScalar将返回一个数字或null,因此您首先需要检查null(在应用ToString()之前),然后解析为整数(或大整数,或十进制,无论您需要什么),并检查是否大于零。

如果没有结果集,ExecuteScalar将返回一个数字或null,因此您首先需要检查null(在应用ToString()之前),然后解析为整数(或大整数,或十进制,无论您需要什么),并检查是否大于零。

在调用ToString()之前只需检查null


只需在调用ToString()之前检查null


您希望它返回什么?不要返回任何空值的内容?或者您的意思是
“”
?你的问题毫无意义。如果ExecuteScalar没有发现任何你需要知道的信息来避免执行以下代码。因此它应该返回一些信息。在这种情况下,唯一有意义的“值”是NULL。你希望它返回什么?只是不要返回任何东西那么NULL?或者你的意思是
“”
?您的问题毫无意义。如果ExecuteScalar没有发现任何您需要知道的信息来避免执行以下代码。因此它应该返回一些信息。在这种情况下,唯一有意义的“值”为NULL。
    var result = xmd.ExecuteScalar();
        if (result != null)
        {
            var ojv = result.ToString();
            Console.WriteLine(ojv);
            var up = CreateQuery();
            up.CommandText = "UPDATE characters SET items=@items WHERE accId=@accId AND charId=@charId;";
            up.Parameters.AddWithValue("@items", ojv);
            up.Parameters.AddWithValue("@accId", acc.AccountId);
            up.Parameters.AddWithValue("@charId", charId);
            up.ExecuteNonQuery();
            var del = CreateQuery();
            del.CommandText = "DELETE FROM shop WHERE accId=@accId AND chrId=@chrId;";
            del.Parameters.AddWithValue("@accId", acc.AccountId);
            del.Parameters.AddWithValue("@chrId", charId);
            del.ExecuteNonQuery();
        }