問題タブ [datatable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
495 参照

c# - C#-データテーブルの変更

データベース接続から入力されたデータテーブルがあります。数値をテキストに置き換えるなどのデータテーブルのチェックを実行し、表示のためにデータグリッドにバインドする前に独自のデータを追加したいと思います。データテーブルの1つのデータにアクセスするにはどうすればよいですか?ありがとう。

0 投票する
6 に答える
32247 参照

.net - データテーブルを汎用リストに変換する最速の方法

データテーブルを返すデータ層選択メソッドがあります。これは、厳密に型指定されたジェネリック List を返すビジネス層メソッドから呼び出されます。

私がやりたいことは、この質問と非常に似ています (ただし、同じではありません):
How do you convert a DataTable into a generic list?

異なるのは、リストにデータ行ではなく厳密に型指定されたオブジェクトを含めたいということです (また、ここではまだ linq を利用できません)。

性能が気になります。次に、ビジネス層のメソッドがプレゼンテーション層から呼び出され、結果が反復されてユーザーに表示されます。ビジネス層で余分なイテレーションを追加するのは非常に無駄に思えます。プレゼンテーションのためにすぐにやり直すだけです。そのため、これをできるだけ迅速に行いたいと考えています。

これはよくある作業なので、何度も繰り返せる良いパターンを本当に探しています。

0 投票する
18 に答える
45947 参照

c# - DataTable の内部インデックスが破損しています

私は、C# で .NET WinForms アプリを使用して、3.5 .NET フレームワークに対して実行しています。このアプリでは、 a の .Expression メンバーを次のように設定してDataColumnDataTableます。

実際に を設定した 2 行目Expressionで、次の例外が発生することがあります。

エラーがいつ発生するかについて、認識できるリズムや理由はありません。同じデータセットをロードすると、正常に機能する場合がありますが、再ロードすると失敗します。その逆も同様です。DataTableこれは、列の1つを変更しようとしているときに別の書き込み操作が発生している競合状態に関連していると思われます。DataTableただし、 s に関連するコードはマルチスレッド化されておらず、UI スレッドでのみ実行されます

Web およびMicrosoft フォーラムを検索しましたが、この問題について多くの議論と混乱が生じています。この問題が最初に報告された 2006 年には、これは .NET フレームワークの欠陥であると考えられており、.NET フレームワークの新しいバージョンに組み込まれたと思われる修正プログラムがいくつかリリースされていました。ただし、現在のフレームワークには適用できなくなったこれらの修正プログラムを適用した結果がまちまちであると報告されています。

もう 1 つの有力な理論は、DataTable には操作があり、一見無害に見えますが、実際には書き込み操作であるというものです。たとえば、 にDataView基づいて新しい を作成することは、後で参照DataTableするために に内部インデックスを作成するため、実際にはテーブル自体に対する書き込み操作です。DataTableこれらの書き込み操作はスレッド セーフではないため、DataTable. これにより、の内部インデックスがDataTable破損し、例外が発生します。

lockコード内の各作品の周りにブロックを配置しようとDataViewしましたが、前述のように、 を使用するコードDataTableはスレッド化されlockておらず、いずれにせよ s は効果がありませんでした。

誰かがこれを見て、うまく解決/回避しましたか?


いいえ、残念ながらできません。DataTable のロードは、DataColumn の 1 つに Expression を適用するために DataTable を取得するまでに既に発生しています。列を削除してから、提案されたコードを使用して再度追加することはできますが、内部インデックスが破損しているという問題を解決する特定の理由はありますか?

0 投票する
3 に答える
31315 参照

c# - DataTable から JSON へ

最近、データテーブルを JSON にシリアル化する必要がありました。私がいるところでは、まだ .Net 2.0 を使用しているため、.Net 3.5 で JSON シリアライザーを使用することはできません。これは以前に行われたにちがいないと考えたので、オンラインで調べてみると、さまざまオプションが見つかりました。それらのいくつかは、追加のライブラリに依存しているため、ここで押し通すのは困難です。他のものは、最初に に変換する必要がありますが、これは少しぎこちなく、不必要に思えました。別の方法では、すべての値を文字列のように扱いました。なんらかの理由で、私はそれらのどれも本当に支持できなかったので、私は自分自身をロールバックすることに決めました。 List<Dictionary<>>

コメントを読んでわかるよう//TODOに、いくつかの場所で不完全です。このコードはすでにここで運用されているため、基本的な意味で「機能」します。不完全な場所は、本番データが現在ヒットしないことがわかっている場所です (db にタイムスパンやバイト配列がありません)。私がここに投稿している理由は、これがもう少し良くなる可能性があると感じているからです。このコードの完成と改善を手伝ってほしいのです。任意の入力を歓迎します。

この機能は .Net 3.5 以降に組み込まれているため、現在このコードを使用する唯一の理由は、まだ .Net 2.0 に制限されている場合です。それでも、JSON.Net はこの種の goto ライブラリになっています。

更新:
これは古いものですが、このコードが日付を処理する方法について指摘したいと思います。私が使用した形式は、URL の正確な理論的根拠のために、当時は理にかなっています。ただし、その根拠には次のものが含まれます。

正直なところ、JSON スキーマは文字列を日付リテラルとして「サブタイプ」できるようにすることで問題を解決していますが、これはまだ進行中であり、重要な採用に達するまでには時間がかかります。

さて、時間が経ちました。今日では、ISO 8601の日付形式を使用するだけで問題ありません。コードを変更するつもりはありません。なぜなら、これは古いコードだからです。JSON.Net を使用するだけです。

0 投票する
2 に答える
8258 参照

c# - .NET の DAL と BLL

Microsoft による ASP.NET (2.0) アプリ用のDAL/BLL 設計の提案があります。私はいくつかの代替案を知っており、SO で関連する質問を読みました。しかし、この提案された解決策が今日実装する価値があるかどうか疑問に思っています。あなたが知っている特定の欠点はありますか?

さまざまなアプリケーションやスクリプトから顧客や従業員のデータなどにアクセスするために、社内で使用する DAL/BLL コンポーネントを開発したいと考えています。ただし、そのようなものの構築を開始する前に、このソリューションが「優れている」ことを確認したいと思います。例として、BLLは何もカプセル化する代わりにデータテーブルを渡します。ロジックを含む分離されたビジネス オブジェクトはありません。これは基本的に、CRUD 操作を少し緩和し、コントロールのデータ バインディングを可能にする単なるダム レイヤーです。

この分野で経験のある人が、このアプローチの長所と短所を指摘してもらえますか?

0 投票する
2 に答える
5067 参照

jsf - 面を使用してデータ テーブルの複数の行にデータを含むレコード

JSFでは、次のようにデータテーブルにレコードを表示させることは可能ですか?

ありがとうございました

0 投票する
2 に答える
684 参照

.net - .NETWebサービスから行を返す

データベースへのインターフェイスとして.NETWebサービスを使用しています。このWebサービスから行を返す最良の方法は何ですか?

.NET2.0でDataTableオブジェクトを返す際に問題が発生したことをぼんやりと覚えています。それらの問題はまだ存在しますか?

更新: .NET1.1 問題のいくつか。また、2.0では、DataTableはクライアント側でDataSetオブジェクトとして逆シリアル化されると思います。私は正しいですか?

0 投票する
3 に答える
969 参照

.net - データテーブルをフィールドとして Oracle から .NET に渡す

.NET データテーブルでは、列はオブジェクト型であり、列の有効な型としてデータテーブルを含めることができます。したがって、かなり複雑な構造を作成できます。

Oracle ストアド プロシージャを呼び出すときに、そのような構造を返す方法はありますか。インライン ビューを使用しようとしましたが、できませんでした。例:

これは機能しませんが、ここでやろうとしていることを行う方法はありますか? 現在、データベースへの 1 回の呼び出しで会社のリストを取得する必要があります。次に、すべてのレコードをループし、個々の呼び出しを行って注文の各リストを取得する必要があります。

[有効な回答を追加 - これまで、実際に質問に回答する回答はありませんでした]

0 投票する
1 に答える
1196 参照

.net - 空の MDB ファイルに ADO.NET データ テーブルを追加する

コードで作成した複数のデータ テーブルを、アプリケーションに同梱されている空の MDB ファイルに追加するにはどうすればよいですか?

OledbConnection オブジェクトを介して MDB ファイルに接続するのは簡単だと思いますが、テーブルを簡単に MDB ファイルに追加する方法がわかりません。そこに座って、開いて空ですが、次は何ですか?

テーブルをデータセットに簡単に追加できますが、開いている MDB ファイルにデータセットをマップする簡単な方法がまだわかりません。

これに対する簡単な修正がありませんか?できればADOXの使用は避けたいです。また、データセットを XML として書き出すのは非常に簡単ですが、MDB ファイルを書き出すための同様の機能は見つかりません。

0 投票する
4 に答える
10583 参照

.net - DataTable を IDatareader に変換するにはどうすればよいですか?

DataReader は DataTable の構築に使用されるため、DataReader は DataTable よりも高速であることは誰もが知っています。

したがって、既に DataTable があるとすれば....なぜそれを DataReader に変換したいのでしょうか?

IDataProvider という内部インターフェイスを作成しています。このインターフェースは、ローカルと WebService の両方で実装されることを意図しています。インターフェイスには、いくつかの基準情報を受け取り、いくつかのデータを返すメソッド「Getdata」があります。

DataReader は最も高速なデータ取得メカニズムであるため、これを "GetData" メソッドの結果の型として使用したいと考えています。ただし、DataReader はシリアル化できないため、Web サービスを介して Web 経由で転送できないこともわかっています...

Web の場合、ローカル プロキシ クラスでデータを DataTable として要求し、それをローカルで DataReader に変換します。

このように、ローカル アプリケーションは、ローカルまたはリモートでデータにアクセスしているかどうかを知る (または気にする) 必要はありません。

ただし、これを行うには知っておく必要があります...既存の DataTable を DataReader でラップするにはどうすればよいですか?

更新: Web サービスを使用する DataProvider は、そうでないものと切り替え可能であるため、私のビジネス ロジックは Web サービスに保持されません。したがって、businessLogic はクライアント アプリで保持されます。

FWIW私は.Net 3.5 SP1を使用しています