0

最近、MySQLのSQLステートメントについてかなりの数の質問がありますが、目的に合ったものはありません。

SQLステートメントを保存するクラスがあり、コードを整理するためのメソッドとして使用できます。Insert、Update、Delete、およびCountステートメントを既に実行しましたが、SELECTステートメントの解決策が見つからないようです。

他のステートメントのコードは次のとおりです。

public void Insert(string query)
    {
        if (OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, mycon);
            cmd.ExecuteNonQuery();
            CloseConnnection();
        }
    }

    public void Update(string query)
    {
        if (OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand();
            cmd.CommandText = query;
            cmd.Connection = mycon;

            cmd.ExecuteNonQuery();
            CloseConnnection();
        }
    }

    public void Delete(string query)
    {
        if (OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, mycon);
            cmd.ExecuteNonQuery();
            CloseConnnection();
        }
    }

    public int Count(string query)
    {
        int count = 0;

        if (OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, mycon);

            count = int.Parse(cmd.ExecuteScalar() + "");

            CloseConnnection();

            return count;
        }

        else
        {
            return count;
        }
    }

私は次のようなSELECTメソッドを考えています。

    public string[] Select(string query, int colnum)
    {
        if (OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, mycon);
            MySqlDataReader dr = new MySqlDataReader();
            string[] info = new string[colnum];
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                for (int i = 0; i <= colnum; i++)
                {
                  info[i] = (dr[colnum].ToString());
                }
            }
        }
    }

この行は、私が知っているのでかなり架空のinfo[i] = (dr[colnum].ToString()); ものです。私が望むようには機能しません。メソッドを使用してSELECTステートメントを利用できる、同様のロジックまたはそのようなものを探しています。

4

1 に答える 1

1

Nhibernate(http://nhforge.org/)を使用しないのはなぜですか。mysqlでnhibernateを使用するためのチュートリアルについては、 http://geekswithblogs.net/pariam/archive/2006/07/26/86352.aspxをお読みください。

編集: あなたのコードでは、並行性をどのように処理できるかわかりません。しかし、Nhibernateはあなたのためにそれを行います。これを読む

並行性の概念の詳細については、これをお読みください

于 2012-12-18T12:30:34.907 に答える