|
分類:[VB.NET/VB2005 以降]
はじめまして。
マジョラムと申します。
仕事で、VBのアプリケーションを作ることになったのですが、
VB.netの初心者で、行き詰まり悩んでいます。
開発環境はVB.net2003、WinXPで、実現したい機能は、
CSVファイルのデータをDataGridに表示して、登録・編集・削除をできるようにしたいと考えています。
CSVファイルは半角英数13桁のIDのみのデータです。
こんな感じです。
4900000000016
4900000000023
4900000000030
4900000000047
で、その列の入力桁数の制限をMaxLengthで指定して、入力したところ、
次のようなメッセージが表示されました。
『オリジナルのデータ ストアに行をコミット中にエラーが発生しました。
列'ID'を'12345678901234'に設定できません。値がこの列のMaxLengthの制限を越えています。
値を修正しますか?』
これでも桁数の制限を実現できてはいますが、エラーが発生しましたというような
メッセージが出るのが好ましくないと考えています。
できることなら、指定以上の桁数を入力しても、それ以上は入力できないようにするか、
「エラーが発生しました。」というようなメッセージでない、メッセージが表示できればと
思っています。
もし、その方法がVB.net2003ではなく、2005の場合であれば実現できるのであれば、
開発環境を変えることも考えています。
以下がそのソースです。
どうぞよろしくお願いします。
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim readData As String '読込みデータ
Dim fileNo As Integer 'ファイル番号
Dim filePath As String 'ファイルパス名
Dim fileName As String 'ファイル名
Dim tbl As DataTable 'データテーブル
Try
fileName = "Operator.csv"
filePath = System.IO.Path.Combine(Application.StartupPath, fileName)
fileNo = FreeFile()
'ファイルオープン
FileOpen(fileNo, filePath, OpenMode.Input)
'テーブルの作成
tbl = New DataTable(FILE_OPE)
tbl_temp = New DataTable
tbl.Columns.Add("ID", System.Type.GetType("System.String"))
tbl.Columns("ID").MaxLength = 13
Do While Not EOF(fileNo)
readData = LineInput(fileNo)
tbl.Rows.Add(New Object() {readData})
Loop
DataGridOperator.DataSource = tbl
Catch ex As Exception
MsgBox("ファイルの読込みに失敗しました。" & vbCrLf & vbCrLf & ex.Message, MsgBoxStyle.Critical)
Me.Close()
Finally
FileClose(fileNo)
End Try
End Sub
|