質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ADO.NET

ADO.NETは.NET Frameworkで各種データベースへの統一された接続機能を提供するソフトウェアコンポーネントの集合です。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

885閲覧

.NET Framework で表データを扱う際のベストプラクティスは?

woria

総合スコア36

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ADO.NET

ADO.NETは.NET Frameworkで各種データベースへの統一された接続機能を提供するソフトウェアコンポーネントの集合です。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2020/08/20 04:16

編集2020/08/20 04:31

前提・実現したいこと

非SE職で、表データの処理を行うためにExcelVBAを用いてマクロの開発を行っていました。
表データの処理を行う際は、ActiveX Data Objects 6.1 LibraryADODB.Recordsetを利用してループ処理を行っています。

VB.NETでも同じライブラリを参照し、同じようにコーディングが可能ということで、近年VB.NETに移行し、当初はこれを利用していました。

しかし、VB.NETでは表データを扱う際に利用できる便利なクラスとして

  • DataTable
  • POCO Entity Generator

や、SQLライクに簡潔にコーディングが可能なLINQがあると聞きます。

表データを扱う際は何を利用するのが良いでしょうか。

重視する点

  • Where,Sort,Selectが可能か
  • ADODB.RecordsetGetString()のように、表データをString型に容易に変換可能か。

HTML変換が行えると良い。

  • 簡潔なコーディングが可能か

また、以下をInput/Outputできるか

  • SQL Server
  • CSV
  • Excel

補足情報(FW/ツールのバージョンなど)

.NET Framework 4.6.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/20 05:01 編集

自分でとにかく DataSet / DataTable を使ってみて、その上で疑問点があれば聞くことをお勧めします。 何をするかによって (たぶん個人的な好みによっても) ベストプラクティスは違ってくるはずで、あなたにしか判断できないことが多々あるはずなので。
woria

2020/08/20 05:00

ありがとうございます。 とりあえずDataTableを勉強してみます。
Zuishin

2020/08/20 05:33

ベストプラクティスを求めるなら、開発の止まった VB.NET と .NET Framework ではなく、C# と .NET が良いと思います。
guest

回答1

0

ベストアンサー

ベストプラクティスかどうかは分かりませんが、私の知識の範疇で答えます。

Where,Sort,Selectが可能か
ADODB.RecordsetのGetString()のように、表データをString型に容易に変換可能か
簡潔なコーディングが可能か

その用途なら、DataTable、DataView が使えると思います。
SQLServerの場合なら、
0. SqlConnectionでDBに接続
0. SqlDataAdapterを使用してSELECT結果をDataTableに出力
0. DataTableからDataRowをループ処理で取り出し、用途に合わせて出力(CSV, Excel)

という感じの流れになると思います
DataTableから、LinqやSelectメソッドで検索を行う事も可能です。
ソートされた結果が必要な場合は、DataTableからDataViewを作成します。
細かい使用サンプルは、MSのクラスリファレンス読んだり、個別にWeb検索すればぞろぞろ出てくると思いますので、探してみてください。

また、以下をInput/Outputできるか

SQL Server
CSV
Excel

これらはそれぞれ別のクラスやライブラリを使用して、自前で行う必要があります。
SqlServerのSQL処理は、SqlConnection、SqlCommand、SqlDataReader、SqlDataAdapter等を使用して行います。
標準ではExcel、CSV操作のライブラリは用意されていないので、Nugetで適当なものを探すか、自作してください。(ExcelならEPPlusとか)

投稿2020/08/20 05:08

編集2020/08/20 05:11
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

woria

2020/08/24 02:02

回答ありがとうございます。 色々勉強した結果、上記のことはある程度できることがわかりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問