- - PR -
データグリッドへエクセルデータのインポート
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-12-13 13:47
VB2005+FlexGrid for .NET(Ver3.0)+Excel2000+SQL-Server2000で開発しています。
マスタメンテ画面を作成中です。 処理の流れ SQL-Server2000 で作成したテーブルデータをVB.NETで修正できるようにしました。 SQL-Server2000→Dataset→TableAdapter→DataGridで表示しています。 表示されたデータを、エクセルにエクスポートし、エクセル上で編集し インポートをする際に、キーID列でnullが発生してしまいます。 TableAdpterのKeyID列には、Autoインクリメントをtrueにしてありますので、 単純にエクセルをデータグリッドに表示したときには、KeyID列がnullでも 正しく表示していますが、DataTableをbindしたままインポートをするとnullエラーが 発生してしまいます。 以下ソースを添付します。 ---エクセルシートの読込み準備処理 '全件削除してロード件数分を追加後、LoadGridします--------- Dim row As Integer For row = 1 To GrdMaster.Rows.Count - 1 Me.T_工程順マスタBindingSource.RemoveCurrent() Next 'Datasourceを削除して、データグリッド上に表示されるエクセルの読込み件数を調べます。 GrdMaster.DataSource = Nothing ' 一番最初のSheetをロードします。 Dim flags As FileFlags flags = FileFlags.IncludeFixedCells 'データグリッドにエクセルデータを読み込みます GrdMaster.LoadGrid(dlg.FileName, FileFormatEnum.Excel, flags) '件数を取得 Dim _count As Integer = GrdMaster.Rows.Count '再度、DataGridとTableAdapterをひも付けます GrdMaster.DataSource = T_工程順マスタBindingSource 'エクセルの件数分だけAddNewします。 For row = 1 To _count - 1 Me.T_工程順マスタBindingSource.AddNew() Next 'データグリッドにエクセルデータを読み込みます GrdMaster.LoadGrid(dlg.FileName, FileFormatEnum.Excel, flags) この時点で、最後の行だけ、エクセルシートに指定されているKeyID列のNullが 維持されてしまう為、エラーが発生します。 どうすればよいでしょうか? こういう方法ではなくもっといい方法はありませんでしょうか? |
1