0

こんにちは、mysql db にエントリがあるかどうかを調べるために現在使用している方法よりも単純な方法があるかどうかを知りたいです。

public static bool check_db_entry(string query)
{
    using (var conn = new MySqlConnection(DbMethods.constr))
    {
        using (var cmd = new MySqlCommand(query, conn))
        {
            conn.Open();
            using (var rdr = cmd.ExecuteReader())
            {
                if (rdr.Read() == false)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }
    }
}
4

2 に答える 2

1

質問のコメントで指摘された設計上の問題はさておき、データベース内のエントリの存在を確認する場合は、常に : でクエリを実行する必要がありCOUNT(*)ますSELECT COUNT(*) FROM yourTable [WHERE theCondition]

関数に渡すのがそれだけの場合は、次のように簡単に実行できます。

public static bool check_db_entry(string query)
{
    using (var conn = new MySqlConnection(DbMethods.constr))
    {
        conn.Open();
        using (var cmd = new MySqlCommand(query, conn))
        {
            return (int)cmd.ExecuteScalar() == 1;
        }
    }
}

そして、それを合理化したい場合:

public static bool check_db_entry(string query)
{
    using (var conn = new MySqlConnection(DbMethods.constr))
    using (var cmd = conn.CreateCommand())
    {
        conn.Open();
        cmd.CommandText = query;

        return (int)cmd.ExecuteScalar() == 1;
    }
}
于 2013-07-01T18:19:27.250 に答える