- PR -

DataTableについて

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-25 18:24
Dim result2 As DataTable
Dim result = New DataTable() 'バッファ

下記の様にresult2をバッファresultに退避する処理を考えています。
result.Rows(i - 1) = result2.Rows(i - 1)
これは実行エラーとなるのですが、このようにDataTableの中身を
そのままコピーする方法はありますか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-03-25 19:26
こんにちは。

>>result.Rows(i - 1) = result2.Rows(i - 1)
>>これは実行エラーとなるのですが、このようにDataTableの中身を
>>そのままコピーする方法はありますか?

result.rows.add(result2.rows(i-1).itemarray)
かな?

 DataRowクラスは、どのテーブルに属しているという情報も持っているので、そのままコピーはできません。特定の行にコピーしたい場合は、全ての列をグルグル回すしかない…ように思います。
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2003-03-26 09:52
素直に

Dim result = result2.copy()

じゃ駄目なんですか?
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-26 10:17
引用:

Clusterさんの書き込み (2003-03-26 09:52) より:
素直に

Dim result = result2.copy()

じゃ駄目なんですか?




下記の様にDataTable型(result2)を返す関数があり、それを
DataTbl = SecRepCls.GetEastWestDataList(Con, EastWest, sysYear, sysMonth)
DataGrid1.DataSource = DataTbl
DataGrid1.DataBind()

名前 'status_nm' のフィールドまたはプロパティが選択されたデータソースに見つかりませんでした。
のメッセージが出てしまいます。
コピー方法が悪いのではないかと思いますが、どう対処したらよいかわかりません。
ご教授お願いします。

--------------------------------------------------------------------------------

Public Function GetEastWestDataList(ByVal Con As SqlConnection, ByVal EastWest As String, ByVal SR_Year As String, ByVal SR_Month As String) As DataTable

'SQLの編集
strSQL = ""
strSQL = strSQL & "SELECT week, status, status_nm, status_btnnm FROM"
strSQL = strSQL & " (SELECT week, status, CASE status WHEN 0 THEN '未承認' WHEN 1 THEN '未承認' WHEN 2 THEN '承認済' END AS status_nm"
strSQL = strSQL & ", CASE status WHEN 0 THEN '承認' WHEN 1 THEN '承認' WHEN 2 THEN '解除' END AS status_btnnm"
strSQL = strSQL & " FROM T_SecurityReport_Info"
strSQL = strSQL & " ) as temp"

Cmd.CommandText() = strSQL

'データテーブルの取得し、返す。
result2 = GetDataTable(Cmd)

result2 = result.Copy

GetEastWestDataList = result2

End Function
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-26 10:31
下記の様にしたところデータをバッファに退避できました。
 ありがとうございました。
ResultBuffer = ResultWeekData.Copy

 また、このバッファに追加書き込みするには、どう対処したらよいのでしょうか?
 ご教授お願いします。


引用:

Clusterさんの書き込み (2003-03-26 09:52) より:
素直に

Dim result = result2.copy()

じゃ駄目なんですか?

1

スキルアップ/キャリアアップ(JOB@IT)