フリーエンジニアである下っ端SEの備忘録と日記。日々是精進。 開発言語は主にC#。 開発技術が日々進化し続けている今日、取り残されまいとするも歳のせいか覚えが悪いSE。 ほったらかしですいません。

スポンサーサイト

上記の広告は2週間以上更新のないブログに表示されています。 新しい記事を書くことで広告が消せます。  

Posted by スポンサー広告 at

2012年02月29日

【VB.NET】csvをDataTableに取り込む

Visual Studio 2010

Dim filePath As String = "csvファイルがあるディレクトリパス(ファイル名を含まない)"
Dim fileName As String = "csvファイル名"
Dim Con As New OleDb.OleDbConnection
Dim Command As New OleDb.OleDbCommand()
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & filePath & "\;" & _
"Extended Properties=""Text;HDR=YES;FMT=Delimited"""

Dim oDataTable As DataTable = New DataTable

Try

Dim oDataAdapter As New OleDb.OleDbDataAdapter
Con.ConnectionString = ConnectionString
Command.Connection = Con
Command.CommandText = "SELECT * FROM " & fileName

oDataAdapter.SelectCommand = Command
oDataAdapter.Fill(oDataTable)

Catch ex As Exception
'エラー処理
Finally
If Not Command Is Nothing Then
Command.Dispose()
End If
If Not Con Is Nothing Then
Con.Dispose()
End If
End Try

Return oDataTable


※データテーブルでは、csvの1行目の値が項目名となる
  
タグ :csv.NetVB.Net


Posted by ようすけ at 12:49Comments(0).Net全般

2012年02月29日

【VB.NET】Excel操作(DataTableに取込む)

表形式(リスト形式?)のエクセルのデータをデータテーブル(DataTable)に取り込むには。

PCにインストールされているExcelバージョン:Excel2003
Visual Studio 2010

例)エクセルの中身
ID  名前   内容
1   名前1  ないよう1
2   名前2  ないよう2
3   名前3  内容がないよう


Dim filePath As String = "ファイルのフルパス"

Dim Con As New OleDb.OleDbConnection
Dim Command As New OleDb.OleDbCommand()
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=" & _
filePath & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""
Dim oDataTable1 As DataTable = New DataTable

'条件を指定してデータを取得したい場合
Dim where As String = " WHERE 内容 <> '内容がないよう'"

Try
Dim oDataAdapter As New OleDb.OleDbDataAdapter
Con.ConnectionString = ConnectionString
Command.Connection = Con

'これは、シート名が「Sheet1」のときの例。 Sheet1じゃないときはは、[Sheet1$]の「Sheet1」のところを書き換え
Command.CommandText = "SELECT * FROM [Sheet1$]" & where

oDataAdapter.SelectCommand = Command
oDataAdapter.Fill(oDataTable1)

Catch ex As Exception
'エラー処理
Finally
If Not Command Is Nothing Then
Command.Dispose()
End If
If Not Con Is Nothing Then
Con.Dispose()
End If
End Try

Return oDataTable1


データテーブルの中身
(項目名)ID 名前  内容
     1 名前1  ないよう1
     2 名前2  ないよう2  
タグ :Excel.NetVB.Net


Posted by ようすけ at 12:47Comments(2).Net全般

2012年02月29日

【VB.NET】Excelファイルの操作(行の削除)

PCにインストールされているExcelバージョン:Excel2003
Visual Studio 2010


1.参照の追加でCOMタブの、Microsoft Excel 11.0 Object Library を指定

2.ファイルにImport
  Imports Microsoft.Office.Interop
  Imports System.Runtime.InteropServices

3.
Dim _xslFile As String = "ファイルのフルパス"
Dim objExcel As Excel.Application = Nothing 'ExcelApplication
Dim objWorkBooks As Excel.Workbooks = Nothing 'ExcelWorkBooks
Dim objWorkBook As Excel.Workbook = Nothing 'ExcelWorkbook
Dim excelSheet As Excel.Worksheet = Nothing 'ExcelWorkSheet

Try
objExcel = New Excel.Application

'エクセルのウィンドウ最小化(最大化ならxlMaximized)
objExcel.WindowState = Excel.XlWindowState.xlMinimized

'エクセル非表示
objExcel.Visible = False

'確認メッセージを表示にする
objExcel.DisplayAlerts = False

objWorkBook = DirectCast((objExcel.Workbooks.Open( _
_xslFile, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing, _
Type.Missing)), _
Excel.Workbook)

'シートの選択(1枚目のシートを指定)
excelSheet = DirectCast(objWorkBook.Sheets(1), Excel.Worksheet)
excelSheet.Select()

'シートの1,2行目を削除する(Shift:=Excel.XlDirection.xlUpは、削除時に上方向にシフトする)
excelSheet.Range("A1:A2").EntireRow.Delete(Shift:=Excel.XlDirection.xlUp)


'2シート目
excelSheet = DirectCast(objWorkBook.Sheets(2), Excel.Worksheet)
excelSheet.Select()
excelSheet.Range("A1:A2").EntireRow.Delete(Shift:=Excel.XlDirection.xlUp)

'3シート目
excelSheet = DirectCast(objWorkBook.Sheets(3), Excel.Worksheet)
excelSheet.Select()
excelSheet.Range("A1:A2").EntireRow.Delete(Shift:=Excel.XlDirection.xlUp)

'★↑1~3シート目の1・2行目を削除しようとしています。
'★本当はもっとよいやり方があると思うのですが・・・ご存知の方ご教授ください。

'保存
excelSheet.SaveAs(_xslFile)

Catch ex As Exception
Throw ex
Finally
' EXCELの終了処理

If Not IsNothing(excelSheet) Then
Marshal.ReleaseComObject(excelSheet) 'オブジェクト参照を解放
excelSheet = Nothing 'オブジェクト解放
End If

If Not IsNothing(objWorkBook) Then
objWorkBook.Close(Type.Missing, Type.Missing, Type.Missing) 'ファイルを閉じる
Marshal.ReleaseComObject(objWorkBook) 'オブジェクト参照を解放
objWorkBook = Nothing 'オブジェクト解放
End If

If Not IsNothing(objWorkBooks) Then
Marshal.ReleaseComObject(objWorkBooks) 'オブジェクト参照を解放
objWorkBooks = Nothing 'オブジェクト解放
End If

If Not IsNothing(objExcel) Then
objExcel.Quit() 'EXCELを閉じる
Marshal.ReleaseComObject(objExcel) 'オブジェクト参照を解放
objExcel = Nothing 'オブジェクト解放
End If

'.net では、Nothingしてもメモリが開放されない
'強制的にガベージコレクタを起動することにより、objExcelを開放
System.GC.Collect()

End Try
  
タグ :Excel.NetVB.Net


Posted by ようすけ at 12:42Comments(0).Net全般

2010年06月21日

VS2005 インストールが固まる

今更の感もあるけども、
Visual Studio 2005をインストールしていると、
Discの2枚目のところで完全に固まってしまい、インストールを完了することが出来ない。決まって、

RemoveTempHxDs

というところで動かなくなってしまう。
そのときは以下の項目を確認。

1.OSがXPの場合、サービスパック2 以上か。(SP2以上でないとインストールできないらしい)

2.ユーザー名に日本語など2バイト文字を使っていないか。(文字化けするらしいので、半角英数字のユーザーでインストールするとよいらしい)

3.ネットワークに接続しているなら接続をやめてみる。アンチウィルスのソフトが入っている場合、無効にする。

私の場合、LANケーブルを引っこ抜き、ウィルスバスターを止めてインストールすると無事に完了した。
こんなことで半日も時間を費やしてしまった。。。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ
人気ブログランキングへ  


Posted by ようすけ at 20:36Comments(0).Net全般

2009年11月07日

リリースモードで実行してデバッグする

「デバッグモードで実行すると、正常に動作するのに、リリースモードで実行すると、エラーになる」
事があり得るというのは知っていたが、
「デバッグモードで実行すると、エラーになり、リリースモードで実行するとデバッグモードでエラーになった箇所でエラーにならない」という現象に出会い、
掲示板でビルドのデバッグ版とリリース版の違いについて教えを請うことに。

C# と VB.NET の質問掲示板 デバッグモードとリリースモードの違い

この中で、リリースモードで実行しても、デバッグが出来る
ということを新たに知り・・・

リリース版でデバッグを可能にするには
VS2003(C#)の場合
プロジェクトのプロパティを開き、構成プロパティにある「デバッグ情報の生成」をtrueにする。

VS2008(C#)の場合
プロジェクトのプロパティを開き、「ビルド」タブを選択すると下のほうに詳細設定ボタンがあり、
そこでデバッグ情報の出力をどうするか選択できる。

詳細設定画面
選択肢の意味
none:デバッグ情報の出力なし
full:デバッグできるコードが生成される
pdb-only:PDB は生成されるが、JIT コンパイラにデバッグ情報が使用できることを示す DebuggableAttribute は生成されない。

参考
MSDN PDB ファイル (C# および Visual Basic)

この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ
人気ブログランキングへ
  
タグ :.NETC#ASP.NET


Posted by ようすけ at 09:00Comments(0).Net全般

2009年11月05日

【VS2008】パッケージの読み込みエラー

とある仕事で使用する自分のPCにはVisual Studio 2008 Professhional Editionが
インストールされていないため、リモートデスクトップで別のPCにはいり、開発をしていたのだが、
何かのタイミングから以下のようなメッセージがでるようになった。(ソリューションを開くときに)

Microsoft Visual Studio
パッケージの読み込みエラー
パッケージ 'Visual Studio Explorers and Designers Packege'を正しく読み込めませんでした(GUID = {8D8529D3-625D-4496-8354-3DAD630ECC1B})。
詳細についてはパッケージ開発元に問い合わせてください。環境が壊れている可能性があるため、アプリケーションの再起動を推奨します。次回からこのパッケージの読み込みを無効にしますか?パッケージの読み込みを再度有効にするには、'devenv /resetskippkgs' を使用してください。


以下、調べてわかったこと。

VS2005のときから存在するエラーである。
解決方法は、
1.VSをインストールしなおす
2.エラーメッセージに書いてある「devenv /resetskippkgs」を実行する。
パスは C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
で、64ビットOSだと、
C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE
だろうか。
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDEというディレクトリもあるけど、
中身を見ると、やっぱりProgram Files (x86)の方が正解のよう。

以下、参考にしました。ありがとうございました。
VS2008でのパッケージの読み込みエラー

Visual Studio 2008で.NET F/W 2.0対応C#のWinFormプロジェクトを扱うと"Visual Studio Explorers and Designers Package"を読み込めないエラーになる問題

この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ
人気ブログランキングへ  
タグ :.NETC#ASP.NET


Posted by ようすけ at 11:20Comments(0).Net全般

2009年11月04日

ドツボにハマって

64ビット WindowsOSに対応したアプリケーションの開発で
あることにドツボにハマってテンパってしまい・・・

もう自分ひとりじゃどうすればいいのかわからな~~~い!!
icon41  
タグ :.NETC#ASP.NET


Posted by ようすけ at 14:42Comments(0).Net全般

2009年10月13日

勉強しなきゃまぢマズイ!

ずっとFramework1.1、VS2003で開発をやっていて、
今回、VS2005をすっ飛ばしVS2008に触れることが出来ました。

【感想】
しまった、時代の流れに取り残された・・・
わけわかんね・・・
本気で勉強しないとマズイ。

誰かよい参考書かよいサイト教えてください。

今後、VS2005、2008の開発に慣れている人にはなんのこっちゃない
初歩的な知識をブログにメモッていくであろうと確信。

マジやばいよぉぉ…  
タグ :.NET


Posted by ようすけ at 09:00Comments(0).Net全般