0

SQL CE でデータ アダプター/セットを使用しています。次のクエリを作成してテーブルに挿入し、@@IDENTITY を選択します。この SELECT ステートメントで、テーブルに挿入するたびに学生 ID が返されるようにします。クエリは次のとおりです。

INSERT INTO [Student] ([Name], [Family], [Address], [Phonenumber])
VALUES(@Name,@Family,@Address,@Phonenumber);
SELECT  @@IDENTITY;

クエリを呼び出す方法は次のとおりです。

int x = da.Insert("Albert", "Alexandra", "No4.Oxford", Telnum);

Int x は私に ID を返すと仮定します...

ここにエラーがあります:

クエリの解析中にエラーが発生しました。[ トークン行番号 = 4、トークン行オフセット = 1、エラーのトークン = SELECT ]

挿入クエリ自体は機能しますがSELECT @@ IDENTITY、最後に追加するとエラーが発生します。

何が間違っているのか本当にわかりません。

4

3 に答える 3

1

ExecuteNonQueryの戻り値は、これらのクエリによって影響を受ける行数になります。そのため、Single Query の代わりにストア プロシージャを使用する必要があります。

于 2013-01-21T11:10:29.517 に答える
0

MSDNによると、CE は実行ごとに複数のコマンドをサポートしていないため、これを 2 つのコマンドとして同期的に行う必要があります。

于 2013-01-21T00:45:03.780 に答える
0

これを 1 回の呼び出しで実行したい場合は、 ではなくストアド プロシージャを使用する必要があります 。これは、レコードを返さない をInsert使用するためです。ExecuteNonQueryそれ以外の場合は、ID を判別するために別の呼び出しで選択を実行する必要があります。

ExecuteNonQueryの戻り値は、呼び出しによって影響を受ける行数を示す整数です。

于 2013-01-21T00:45:45.340 に答える