私は過去に「HISTORICAL_COSTS」ストアドプロシージャから生成されたデータセットをExcelにエクスポートするために、これまで使用してきた以下のコードを用意しています。データセットをExcelにエクスポートする
Dim c As Long = 1
For Each dc As DataColumn In Me.WOCostDataSet. & _
HISTORICAL_COSTS.Columns
.Cells(1, c).Value = dc.ColumnName.ToString
.Cells(1, c).Font.Bold = True
c += 1
Next
Dim i As Long = 2
For Each dr As DataRow In Me.WOCostDataSet.HISTORICAL_COSTS.Rows
c = 1
For Each dc As DataColumn In Me.WOCostDataSet. & _
HISTORICAL_COSTS.Columns
.Cells(i, c).Value = dr.Item(dc.ColumnName).ToString
c += 1
Next
i += 1
Next
私はこのコードを別の同様のアプリケーションで再利用しようとしていますが、問題が発生しています。このコードの以前の使用は、ストアドプロシージャによって生成されたdBaseの静的テーブルで使用されていました。これは基本的に新しいアプリケーションでは同じですが、実行前にストアドプロシージャに入力パラメータ(VB.net経由)を入力する必要があります。少し後ろの話をすると、ここで完了したプロセスに従うことができます - Injecting a Parameter into Stored Procedure.
実際にアプリケーション自体は完全にデータが入ったデータセットを返します。そのデータセットをExcelにエクスポートすることができます。だから、あなたのプロトタイプの「EXPORT ME」ボタンを設定して、汚れた作業を開始します。
イベントを発生させると、 Excelが開き、のみ私の列名がシート全体で繰り返されています。しかし、ここでは問題があり、行データを表すセルは空白です。
ストアドプロシージャが入力パラメータを必要とするために行が移入されていないという結論に至りました(私はこの仮定で間違っていると認めます)。パラメータには、各行に返すデータはありません。基本的に私のコードは、私がやろうとしていることに対してはうまくいかないことを意味します。
私が前提にしているのであれば、行が正しく生成されるように、上のコードにそのパラメータをどのように取得するかについてのアイデアです。
私が間違っていれば、私のロジックやコード自体に何が間違っているかについてのご意見は大変ありがたいです。
Try
Dim FBConn As FbConnection
Dim MyConnectionString As String
MyConnectionString = "datasource=" _
& MyServer & ";database=" _
& TextBox4.Text & ";user id=SYSDBA;password=" _
& MyPassword & ";initial catalog=;Charset=NONE"
FBConn = New FbConnection(MyConnectionString)
Dim FBCmd As New FbCommand("HISTORICAL_COSTS", FBConn)
FBCmd.CommandType = CommandType.StoredProcedure
FBCmd.Parameters.Add("@I_PN", FbDbType.VarChar, 40)
FBCmd.Parameters("@I_PN").Value = TextBox1.Text.ToUpper
Dim FBadapter As New FbDataAdapter(FBCmd)
Dim dsResult As New DataSet
FBadapter.Fill(dsResult)
Me.HISTORICAL_COSTSDataGridView.DataSource = dsResult.Tables(0)
Dim RecordCount As Integer
RecordCount = Me.HISTORICAL_COSTSDataGridView.RowCount
Label4.Text = RecordCount
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show _
("There was an error in generating the DataStream, " & _
"please check the system credentials and try again. " & _
"If the problem persists, please contact your friendly " & _
"local IT department.")
End Try
stackoverflowの親切に私が提供していることを示唆している:ここで
おかげで、
Jasoomian
スタン、
は、データセットを生成するコードがあります私の質問に答える人には恩恵を与えますが、十分な賞金を創出するのに十分なREPを持っていないので、これまでの感謝の気持ちにはコーディングの愛がありませんか?
いくつかの簡単なアップデート:
私は新しい別のテーブルに結果を注入し、そのテーブルに対して私のExcelのエクスポートを実行するストアドプロシージャを変更することにより、自分のアプリケーションをテストした - そしてそれが正常に動作します。しかし、同時に多くの人がアプリケーションを使用するため、これは実行可能な解決策ではありません。
私は、エクスポートのために正しく動作するためにパラメータを必要とするこのデータセットのインスタンスに問題があると考えています。
私の能力を最大限に引き出し、あらゆる質問にお答えします。
これは私には少しばかり曖昧です。このパラメータはどこから来ていますか?また、前提条件に基づいて何かを行う前に、前提条件が正しいことを確認してください。私が意味することは:ハード・エビデンスを収集するために、デバッグを試してみてください。 – GvS
あいまいな情報を残念に思って、私は可能な限り詳細にしようとしました。とにかく、パラメータは、VBアプリケーション自体から来て、私は、DataSetを生成するために使用するストアドプロシージャHISTORICAL_COSTSに渡されます。 しかし、1日半のようにデバッグは続けられます:) – Jasoomian