問題タブ [executescalar]

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 に答える
18192 参照

c# - C# cmd.ExecuteScalar(): "セッションが強制終了状態のため、実行を続行できません。"

ExecuteScalar()Web上でヘルプが見つからない という奇妙な例外を取得します:

セッションが強制終了状態のため、実行を続行できません。

SqlConnection/SqlCommand を使用しています

コマンドは基本的な INSERT INTO... で、105 列 (および列データを設定するための 105 個のパラメーター) があり、その後に SELECT SCOPE_IDENTITY(); が続きます。

接続文字列を確認しました - それは正しく、接続は開いています。

このエラーが何を示しているのか、このエラーをどこから調べればよいのかさえわかりません。

では、このエラーは正確には何を意味するのでしょうか? そもそもセッションはどのようにして kill 状態になるのでしょうか?

コードは非常に簡単です。

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

c# - さまざまな変数にexecutereaderを使用するにはどうすればよいですか?

ExecuteScalar次のような単一のクエリに使用します。

それは私にとってはうまくいっています。しかし、データベースのために3つ(および他のデータベースの場合はそれ以上)のクエリが非常に待機しています。すべてのテーブルを選択し (select * from Table1)、すべての where 条件に対してコマンドを実行した後、どのようにすればよいですか? 私のサンプルコードでこれの例を見せてもらえますか? ありがとうございました。

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

c# - ExecuteScalar: 接続プロパティが初期化されていません。SQL サーバー接続

SQL Server データベースに保存されている画像を読み取るためにこのコードを書きましたが、次のエラーが発生しました。

ExecuteScalar: 接続プロパティが初期化されていません。

すでに接続を初期化しているため、何が問題なのかわかりません。

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

c# - 配列を使用した DB2 でのカウント クエリの選択

配列の内容を使用してテーブルを検索するクエリを使用して、DB2 データベース内のすべてのレコードをカウントしようとしています。

このコードは例外をスローします ({"EXECUTE または OPEN ステートメントのホスト変数の値は、対応する使用の範囲外です。"})

ただし、strNumbers.Length を使用するとエラーは発生しませんが、nodeCount はまだ 0 です。

ループする必要がありますか、それとも別のものですか?同じプログラムからデータベースに選択、挿入できるため、クエリとデータベース接続は問題ありません。

ありがとう

編集 - 私はこれを解決することができました(受け入れられた回答を参照)が、別の問題があります。「1234567」がデータベースにあるとしましょう。1 が返されたら問題ありません。入力がデータベースにない「5551234」の場合、0 が返されますが、これも問題ありません。ただし、問題は、入力が '1234567,5551234' の場合、5551234 がデータベースにない場合でも、1234567 がデータベースにあるため、Count は 1 を返します。

1234567 に対して 1 を出力し、5551234 に対して 0 を出力する方法はありますか?

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

c# - ExecuteScalar メソッドを呼び出すときに、リーダーが閉じているときに Read を呼び出そうとする無効なエラー

Excel ファイルからデータをロードする必要がある ASP.NET アプリケーションがあります。ファイルには約 20K のレコードが含まれています。アプリはファイルからデータを読み取り、各レコードをループして計算と検証を行い、各レコードを DB に挿入します。Insert メソッドが例外をスローするまで、すべてが期待どおりに機能します。エラーは、10 ~ 11 分の実行後にスローされます。注: すべてのロード プロセスは、次のように定義されたトランザクション スコープで実行されます。

SQLConnection が開かれるたびに、SQL プロファイラーを使用してこれを確認しました。DB を操作するために、Microsoft.Practices.EnterpriseLibrary.Data.Database オブジェクトを使用します。これは Insert メソッドです。

これはエラーです:

このエラーに関する検索情報があり、主な考えは接続が閉じられているということですが、理由がわかりませんか?

助けやアドバイスをいただければ幸いです

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

c# - MS SQL 関数が C# に値を返さない

次の MS SQL 関数があります。

関数を呼び出す次の C# コード:

関数が cmd.ExecuteScalar() に到達すると、NullReferenceException が発生します。

「dbo.」を使用して、または使用せずに関数を呼び出してみました。また、成功せずに cmd.ExecuteReader() を使用して呼び出してみました。

ここで何がうまくいかないのですか?

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

vb.net - インジェクション攻撃からの SQL の防止

私は SQL クエリを含むプログラムを持っていますが、昨日、SQL インジェクション攻撃に対して無防備であると指摘されました。いくつかの調査を行った後、これを修正するには、代わりにパラメーターを使用する必要があることがわかりました。次のコードがあります...これをどのようにパラメータ化しますか?

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

c# - ExecuteScalar() は常に NULL を返します

ExecuteScalar() を使用してデータベースから整数を返そうとしています。ただし、データベース自体でクエリを実行すると、正しい答えが得られ、c# は常に 0 (Null) を返します。id = Convert.ToInt32(command.ExecuteScalar());追加する前に、NULLが処理されていることを確認するように指示するエラーが表示されるため、nullが返されることはわかっています。私はそれが3 btwを返すことを期待しています。

これは、データベースで実行すると得られるものです

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

ado.net - ExecuteScalar が例外をスローしない

メイン テーブルと詳細テーブルにデータを挿入しようとしています。

私のメインテーブル Qry: Insert INTO tblMain();

それから私はやっています:

@OrderID次に、 as の値を使用して詳細テーブルに挿入していますInsert into tbl_Details(OrderID,SKU,amount) Values(@OrderID,NULL,20 );

inが null でない場合、すべてのクエリを一度に実行して null として渡すと、例外が発生しtbl_Detailsません。SKUExecuteScalarSKU

私の実行機能は次のとおりです。

解決策はありますが、そのためには、関数のシグネチャを次のように変更する必要があります。

私が欲しいのは、関数の署名を変更せずに、詳細テーブルのnull不可フィールドがnullとして渡された場合に例外をスローするように、古い関数でantのことを実行できるかどうかです。