問題タブ [dataadapter]
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.
.net-4.0 - データ アダプターを使用する場合、更新 CASCADE 発行で使用される出力パラメーター
いくつかのデータ アダプターを手動で作成しました。バージョンの非互換性のため、自動生成されたものを使用することはできません。通常、PK と FK の制約が混在している多数のテーブルで構成されるデータセットの場合です。これまでのところ、そのほとんどは非常にスムーズに機能していますが、新しい「追加された」行で DB を更新するときに、(データセット内の行に割り当てられた一時的なものではなく) PK に DB シーケンスを使用するようにアダプターを変更した後、私は打撃の問題。
シーケンスを挿入ステートメントに追加し、PK パラメーターを出力パラメーターに変更して、データセット行を更新し、すべての子行も更新するようにしました (UPDATE CASCADE ルールを使用)。問題は、更新前に行の状態が追加されていた子行が、変更された状態に変更されることです (これが起こっていることに同意しません。追加された行は、たとえそれが変更されました!)。したがって、子テーブルを子行で更新しようとすると、追加された状態の行が期待されるため失敗します。
この問題を回避できる最もクリーンな方法は何ですか? 私が考えることができる潜在的な解決策:
- UPDATE CASCADE をオフにし、各子行を手動で更新した後、親 PK を更新し、各行を変更した後に追加済みに戻します。
- 更新を開始する前に、データセットのすべてのテーブルに追加されたすべての行のコピーを作成し、各テーブルの更新後にメイン コピーを更新して、すべての正しい行を追加済みに戻します。
より良いアイデアはありますか?
c# - update メソッドの実行中に DataAdapter.Update が例外をスローする
ODBC Microsoft Text Driver を使用して csv ファイルをデータセットにロードし、datagridview に表示しています。現在、DGV には列がありません。ファイルを正常にロードできますが、次の 2 つの問題が発生します。
- 2 つの列は問題なくロードされますが、3 番目の「noname」列もロードされます。これはなぜですか?
- DataAdapter を使用して更新を行うと、次の例外が発生します。
エラー [HYS22] [Microsoft][ODBC Text Driver] INSERT INTO ステートメントに次の不明なフィールド名が含まれています: 'NoName'。名前を正しく入力したことを確認して、操作を再試行してください。
なぜこれが起こるのか誰か知っていますか?
CSV データ:
empName,salary,
charles,4324343,
andrew,31343970,
freddy,998788966,
loop,8878743,
asp.net - クエリが機能している間、ASP.NET DataAdapter クエリが無効になる
6 か月前のように、ASP.net Web アプリで DataSet を使い始めました。これは美しいツールであり、DB 接続/クエリで面倒な作業をすべて行う必要なく、MVC アプリケーションを迅速に開発できます。
しかし、今日、私はいくつかの奇妙な問題に直面しました。次のクエリから始まりました。
select a.MR_PART_CODE as PART_CODE,
クエリは Toad for Oracle で正常に実行されましたが、DataAdapter オブジェクトで新しいクエリとして設定しようとすると失敗したようです。次の行に「関数引数のリストにエラーがあります: SELECT が認識されません」のようなメッセージが表示されます。
(select sum(back_order) from STK_REQUEST where part_code=b.part_code) as BO
私は何を間違えましたか?
参考までに、データベースは Oracle です。
android - SQLiteDatabase.openDatabaseとSQLiteOpenHelper.getReadableDatabase
これら2つの方法に違いはありますか?どちらも開いたSQLiteDatabaseを返します。どちらもデータベースが存在しない場合は、どちらもデータベースを作成できます。SQLiteOpenHelperには、読み取り/書き込みが必要な場合のgetWriteableDatabaseもあります...
どの方法をどこで使用すればよいですか?私が見たサンプルコードに基づいて、私は最初にSQLiteOpenHelperを使用してデータベースを作成していますが、データベースを使用する必要があるときにSQLiteDatabase.openDatabaseを呼び出しています。
c# - SqlTransaction内のSqlDataAdapter.Fill()-これは悪い習慣ですか?
データベースへのすべての呼び出しに使用するメソッドを持つ「DButil」クラスがあるのでDataSet QueryDB(string spName, DBInputParams inputParams)
、トランザクション呼び出しをサポートするためにこのメソッドを再利用したいと思います。
したがって、最後にSqlTransaction内にSqlDataAdapter.Fillがあります。これは悪い習慣ですか?トランザクション内でDataAdapter.Fillが使用されることはめったになく、ExecuteReader()が頻繁に使用されるためです。キャッチはありますか?
Edit1:重要なのは、トランザクション内でいくつかのデータ(自動IDなど)も取得する必要があることが多いということです...そのため、DataSetとして取得したいと思います。
Edit2:奇妙なことに、2つの異なるプロセスからのforループ(10000)でこのアプローチを使用すると、「トランザクション(プロセスID 55)が別のプロセスのロックリソースでデッドロックされ、デッドロックの犠牲者として選択されました。トランザクションを再実行してください。 。」。これは正しい動作ですか?
Edit3 :( Edit2の回答)エラーの原因となったものを使用しIDENT_CURRENT('XTable')
ていました。に戻った後SCOPE_IDENTITY()
、すべてが解決されました。
vb.net - DataAdapterが2回だけ「Fill」するのはなぜですか?SQL Server Compact
背景:Sync Services for ADO.NETを使用して、アプリケーションのサーバー/クライアント同期シナリオを作成しようとしています。具体的には、すべてを設定するLocalCacheカスタムツールです。私のサーバーDBには5つのテーブルがあり、それらはすべてクライアントアプリケーションに同期されています。クライアントアプリケーションには、サーバーDBと同じスキーマを持つSQL ServerCompactDBがあります。アプリをローカルデータベースに接続するために使用するカスタムクエリを含むデータセットがあります。ここまでは順調ですね。ただし、私のアプリケーションでは、フォームのテーブルアダプタを使用してテーブルの1つに入力しようとすると(デフォルトの「fill」メソッド)、次の例外が発生します。
DbTypeオブジェクトから既知のSqlDbTypeへのマッピングは存在しません。
ただし、続行してもう一度塗りつぶすと、問題なく動作します。
上記のコードを次々と2回実行すると、最初のコードは失敗し、2番目のコードは機能します。
もう1つの注意点は、これはこのデータテーブルでのみ発生し、DB内の他の4つのテーブルはすべて期待どおりに機能することです。
誰かがこれの原因が何であるかについての考えを持っていますか?
どうもありがとう
編集:データセットを削除して再作成しましたが、成功しませんでした。誰かが私のためのアイデアを持っていますか?
vb.net - VB.NETコンボボックスはSystem.Data.DataRowViewを表示します
私はこのコードを使用しました:
次に、コンボボックスに「System.Data.DataRowView」という表示が表示されます。助けてください
vb.net - vb.net - データセットでデータアダプターを埋めるエラー
以下は私のコードです:
次に、Select コマンドIncorrect Syntax near".
を指していないというエラーをキャッチします。myAdapter.Fill(myDataSet, "tblVisitor")
助けてください。
c# - 追加された新しい行は、C# および SQL サーバーを使用して基になるデータベースに保存されませんでした
このコードを使用してデータベースに新しい行を追加しようとしていますが、新しい行は保存されますが、プログラムを閉じて再度開くと、行が消えてしまいます。
だから誰かが私を助けてくれることを願っています
c# - データセットを介して1対1の関係でテーブルに挿入する方法
私はデータベースにアクセスするためにasp.net 4
とを使用します。DataSets
データベースには、1対1の関係を持つ2つのテーブルがあります。これは、両方のテーブルが主キー(たとえば、Id)と同じ列を持ち、テーブルの1つが@identity
この列セットにあることを意味します。
id.table2 = id
したがって、一般に、挿入する場合は、table1の対応するレコードを使用して2番目のテーブルに挿入するよりも、最初に最初のテーブルに挿入します。
ストアドプロシージャを使用してこれを実現する方法を想像できます(最初のテーブルに挿入し、outパラメーターとしてidを使用してから、このIDを使用して2番目のテーブルに挿入します。すべて1つのトランザクション内にあります)。
しかし、ストアドプロシージャを使用せずにそれを行う方法はありますか?DataSets \ DataAdaptersにはそのような機能が組み込まれている可能性がありますか?
助けていただければ幸いです。