1

いくつかのアイテムの ID を含む配列リストがあります。SQL Server CE データベースから一度に複数選択を実行し、選択するアイテム ID を含む配列リストを使用したいと思います。ここで説明されているように、オラクル (ODP.NET) で複数更新を行う場合と同様です: Oracle ODP.NETを使用した一括更新

配列をパラメーターとして渡すことができます。

同じことをしたいのですが、SQL Server CE の場合は代わりに複数選択を行います。出来ますか?

私がやりたいことについての下書き:

SqlCeCommand = SqlCeConnection.CreateCommand()
SqlCeCommand.CommandText = "SELECT * FROM MyTable WHERE Id=:ids"
SqlCeCommand.CommandType = CommandType.Text

SqlCeCommand.Parameters.Add(":ids", DbType.Int32, ArrayListOfIds, ParameterDirection.Input)

Using reader As System.Data.SqlServerCe.SqlCeDataReader = SqlCeCommand.ExecuteReader()
  Using targetDb As Oracle.DataAccess.Client.OracleBulkCopy = New Oracle.DataAccess.Client.OracleBulkCopy(con.ConnectionString)
    targetDb.DestinationTableName = "MyTable"
    targetDb.BatchSize = 100
    targetDb.NotifyAfter = 100
    targetDb.BulkCopyOptions = Oracle.DataAccess.Client.OracleBulkCopyOptions.UseInternalTransaction
    AddHandler targetDb.OracleRowsCopied, AddressOf OnOracleRowsCopied targetDb.WriteToServer(reader)
    targetDb.Close()
  End Using
  reader.Close()
End Using
4

2 に答える 2

0

ストアド プロシージャを呼び出す場合は、次の操作を実行できます。

  1. 次のように、配列を XML の文字列にシリアル化します: https://stackoverflow.com/a/6937351/734914
  2. 文字列パラメータを渡して、ストアド プロシージャを呼び出します。
  3. 次のように、ID を含むローカル テーブル変数に XML の文字列を解析します
  4. IDを使用して必要なクエリを実行します

私が参照したリンクは Web 上の最良の例ではないかもしれませんが、「XML にシリアライズし、文字列パラメータを渡し、XML をデシリアライズする」という概念はここで機能するはずです。

于 2013-08-13T12:59:06.043 に答える