【解決方法】C# は、あるプロジェクトから別のプロジェクトに配列リストを渡します


配列を扱うことはめったにありません。 したがって、配列にアイテムを追加して、それらをBIGに読み取る
達成。
私が達成しようとしているのは、クラスライブラリプロジェクトでデータを読み取ることです
次に、その配列リストを別のプロジェクトに戻し、フォーム上に DataGridView の行を入力します。
いいえ、データを DataGridView にバインドしたくありません。
プロジェクトからクラス ライブラリ プロジェクトに文字列を渡しました。
検索しましたが、Project to Project に関連するコードに関する質問はありません。
これは、これが私の側の悪い設計アイデアであると思いますか?
私はコードを求めていませんが、これで完全に迷っているので、それはいいでしょう。

または何を見るべきかのヒント。

私が試したこと:

彼女は、DB から読み取り、listAdd を使用するコードです。
トップ レベル リストを作成しました。

public static List<string> list = new List<string>();

クラス ライブラリ プロジェクトの DB から読み取るようになりました。

private void readFriendsData()
{
    using (SQLiteConnection conn = new SQLiteConnection($"Data Source = '{"APeople.db"}';Version=3;"))
    {
        conn.Open();

        using (SQLiteCommand cmd = new SQLiteCommand($"SELECT * FROM FriendsData", conn))
        {
            using (var rdr = cmd.ExecuteReader())
            {
                while (rdr.Read())
                {
                    gv_parentInt = rdr["FID"].ToString().Trim();
                    list.Add(gv_parentInt);
                    gv_firstName = rdr["fxFirstName"].ToString().Trim();
                    list.Add(gv_firstName);
                    gv_lastName = rdr["fxLastName"].ToString().Trim();
                    list.Add(gv_lastName);

                    //dgvPerson.Rows.Add(gv_parentInt, gv_firstName, gv_lastName);
                    //dgvPerson.Sort(dgvPerson.Columns[2], ListSortDirection.Ascending);

                    dgvPerson.Rows.Add(list[i], list[i + 1], list[i+2]);
                    i = i + 3;// Crude but it works ?

                    dgvPerson.Sort(dgvPerson.Columns[2], ListSortDirection.Ascending);

                }
                rdr.Close();
            }
        }
    }
}

解決策 1

クラス ライブラリにパブリック プロパティまたはメソッドを持つパブリック クラスがある場合、そのクラス ライブラリを別のクラス ライブラリまたはアプリケーションにリンクし、クラスがアプリケーション自体にある場合と同様に、そのクラスおよびプロパティ/メソッドにアクセスできます。クラスの場所への参照。

また、こちらの動画もご覧ください リポジトリ パターン | ユーチューブ[^]. これは、データベースとやり取りするための一般的な構造化された方法です。

コードに関しては、上記の説明に基づいて、これを変更する必要があります。

C#
private void readFriendsData()
{
    // do work here
}

に:

C#
public void ReadFriendsData()
{
    // do work here
}

これは アクセス修飾子 101 | マイクロソフト ラーン[^].

最後に、ネーミングのネーミング変換に注意してください。 ここでもっと読むことができます: スネーク ケース VS キャメル ケース VS パスカル ケース VS ケバブ ケース – ケーシングの違いは何ですか?[^]

コメント

タイトルとURLをコピーしました