[ad_1]
配列を扱うことはめったにありません。 したがって、配列にアイテムを追加して、それらを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
クラス ライブラリにパブリック プロパティまたはメソッドを持つパブリック クラスがある場合、そのクラス ライブラリを別のクラス ライブラリまたはアプリケーションにリンクし、クラスがアプリケーション自体にある場合と同様に、そのクラスおよびプロパティ/メソッドにアクセスできます。クラスの場所への参照。
また、こちらの動画もご覧ください リポジトリ パターン | ユーチューブ[^]. これは、データベースとやり取りするための一般的な構造化された方法です。
コードに関しては、上記の説明に基づいて、これを変更する必要があります。
private void readFriendsData() { // do work here }
に:
public void ReadFriendsData() { // do work here }
これは アクセス修飾子 101 | マイクロソフト ラーン[^].
最後に、ネーミングのネーミング変換に注意してください。 ここでもっと読むことができます: スネーク ケース VS キャメル ケース VS パスカル ケース VS ケバブ ケース – ケーシングの違いは何ですか?[^]
[ad_2]
コメント