C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 29 を表示中)
■13760 / )  Excelの取込み
□投稿者/ そら (1回)-(2008/02/04(Mon) 17:14:18)

分類:[.NET 全般] 

お世話になります
環境はWinXP,VB.Net2005,Excel2003,SQLServer2005です
エクセルデータを取り込んでテーブルに書き込んで、エラーがあればエクセルに書き出して表示するプログラムを作っています
得意先コード  商品金額
1200      1000
1210      1AB
1220      1230
一例として上記3つがあったとして
Dim oleCn As New OleDb.OleDbConnection()
Dim oleCm As New OleDb.OleDbCommand()
Dim oleDa As New OleDb.OleDbDataAdapter()
Dim dt As New DataTable()
Dim strWork(1) As String
Dim intRow As Integer = 0

'エクセルの場所とエクセルファイルを指定(Me.txt_PATH.Textから)
oleCn.ConnectionString = _
      "Provider=Microsoft.Jet.OLEDB.4.0; " + _
      "Data Source=" & Me.txt_PATH.Text & ".xls" & ";" + _
      "Extended Properties=""Excel 8.0;HDR=YES;"""

oleCm.Connection = oleCn

oleCm.CommandText = "Select * from [Sheet1$] "

oleDa.SelectCommand = oleCm

Try
    oleDa.Fill(dt)
Catch ex As Exception
    oleDa.Dispose()
    oleDa = Nothing
    oleCm.Dispose()
End Try

Do While intRow < dt.Rows.Count - 1
    strWork(0) = dt.Rows(intRow).Item(0).ToString   '得意先コード
    strWork(1) = dt.Rows(intRow).Item(1).ToString   '商品金額

    intRow += 1     '次の行へ
Loop

oleDa.Dispose()
oleDa = Nothing

READ_EXCEL = True
以上の様に記述しています
取り込み時、商品金額が上の例だと「1210 1AB」の商品金額がDBNullになってしまっています
エラー出力時には空欄(DBNull)で出てしまうのできちんと「1AB」と取りたいのですが
どの様にすれば取る事が出来るのでしょうか
別例として商品金額に1ABや文字列の方が多く入っていると数字の方が空欄(DBNull)になってしまいます

どうかよろしくお願いします

返信 編集キー/


管理者用

- Child Tree -