Visual Basic から Microsoft SQL Server にアクセスするプログラミングの解説本を探してみた。この分野は結構少ないなあ。Olacleや他のRDB、PHPやJava関連の本は結構あるがなあ。この分野を詳しく習うのは講習会などにいったり、研修を受けてやるのが普通なのかな。
09/11/01 10:19
VisualBasic2008上で作ったデータベースにアクセスしてみる。

ボタン1 接続の試験
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cn As New System.Data.SqlServerCe.SqlCeConnection
Try
cn.ConnectionString = "Data Source=D:\databaseApplication1\Database1.sdf;"
cn.Open()
TextBox1.Text = "Connection sucsess"
Catch ex As Exception
TextBox1.Text = ex.Message
Finally
cn.Close()
End Try
End Sub
ボタン2 データベースから読み込む
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim cn As New System.Data.SqlServerCe.SqlCeConnection
Dim cmd As System.Data.SqlServerCe.SqlCeCommand
Dim dread As System.Data.SqlServerCe.SqlCeDataReader
Try
'SQLサーバへ接続
cn.ConnectionString = "Data Source=D:\databaseApplication1\Database1.sdf;"
cn.Open()
Me.TextBox1.Text = "Connection sucsess"
'SQLコマンドの設定
cmd = New System.Data.SqlServerCe.SqlCeCommand("SELECT * FROM CustomerInfo", cn)
'データの読み込みSQLの実行
dread = cmd.ExecuteReader()
'出てきたデータを順に読み出す
Do While (dread.Read())
'データをリストボックスへ表示
Me.ListBox1.Items.Add(dread.GetInt32(0) & ControlChars.Tab & dread.GetString(1) & ControlChars.Tab & dread.GetString(2) & ControlChars.Tab & dread.GetString(3))
Loop
dread.Close()
Catch ex As Exception
'エラー表示
TextBox1.Text = ex.Message
Finally
cn.Close()
End Try
End Sub
09/10/30 17:06
ボタン1 接続の試験
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cn As New System.Data.SqlServerCe.SqlCeConnection
Try
cn.ConnectionString = "Data Source=D:\databaseApplication1\Database1.sdf;"
cn.Open()
TextBox1.Text = "Connection sucsess"
Catch ex As Exception
TextBox1.Text = ex.Message
Finally
cn.Close()
End Try
End Sub
ボタン2 データベースから読み込む
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim cn As New System.Data.SqlServerCe.SqlCeConnection
Dim cmd As System.Data.SqlServerCe.SqlCeCommand
Dim dread As System.Data.SqlServerCe.SqlCeDataReader
Try
'SQLサーバへ接続
cn.ConnectionString = "Data Source=D:\databaseApplication1\Database1.sdf;"
cn.Open()
Me.TextBox1.Text = "Connection sucsess"
'SQLコマンドの設定
cmd = New System.Data.SqlServerCe.SqlCeCommand("SELECT * FROM CustomerInfo", cn)
'データの読み込みSQLの実行
dread = cmd.ExecuteReader()
'出てきたデータを順に読み出す
Do While (dread.Read())
'データをリストボックスへ表示
Me.ListBox1.Items.Add(dread.GetInt32(0) & ControlChars.Tab & dread.GetString(1) & ControlChars.Tab & dread.GetString(2) & ControlChars.Tab & dread.GetString(3))
Loop
dread.Close()
Catch ex As Exception
'エラー表示
TextBox1.Text = ex.Message
Finally
cn.Close()
End Try
End Sub
Readボタンを押すと、テキストファイルを読んでListBoxに表示します。また、ピクチャボックスにも表示します。
Writeボタンを押すと、ListBoxの内容を、テキストファイルへ出力します。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fname As String
Dim ret As DialogResult
Dim TextFile As IO.StreamReader
Dim Line As String
Dim cnt As Integer
'PictureBox1のGraphicsオブジェクトを取得
Dim g As Graphics = PictureBox1.CreateGraphics()
Dim ystr As Integer
'ダイアログボックスの初期設定
With Me.OpenFileDialog1
.Title = "ファイルを開く"
.CheckFileExists = True
.RestoreDirectory = True
.Filter = "テキストファイル|*.txt;*.dat"
.FileName = "test.txt"
End With
'ダイアログボックスの表示
ret = Me.OpenFileDialog1.ShowDialog()
If ret = Windows.Forms.DialogResult.OK Then
fname = Me.OpenFileDialog1.FileName
Else
fname = ""
End If
If IO.File.Exists(fname) = False Then
MessageBox.Show("ファイルが見つかりません。", "通知")
Exit Sub
End If
'フォントオブジェクトの作成
Dim fnt As New Font("MS UI Gothic", 12)
Me.ListBox1.Items.Clear()
TextFile = New IO.StreamReader(fname, System.Text.Encoding.Default)
cnt = 0
Do While True
Line = TextFile.ReadLine()
If Line = Nothing Then
Exit Do
End If
Me.ListBox1.Items.Add(Line)
cnt = cnt + 1
'文字列を位置(0,0)、青色で表示
g.DrawString(Line, fnt, Brushes.Blue, 0, ystr)
ystr = ystr + 20
Loop
TextFile.Close()
'リソースを開放する
fnt.Dispose()
g.Dispose()
Label2.Text = cnt.ToString
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim ret As DialogResult
Dim textfile As IO.StreamWriter
Dim i As Integer
Dim cnt As Integer
cnt = Integer.Parse(Label2.Text)
'ダイアログボックスの初期設定
With Me.SaveFileDialog1
.RestoreDirectory = True
.OverwritePrompt = True
.Filter = "すべてのファイル(*.*)|*.*|" & "テキストファイル(*.txt)|*.txt"
.FileName = "ts.txt"
End With
'ダイアログボックスの表示
ret = Me.SaveFileDialog1.ShowDialog
If ret = Windows.Forms.DialogResult.OK Then
Me.Label1.Text = Me.SaveFileDialog1.FileName
'現在のファイルのエンコーディングで出力
'textfile = New IO.StreamWriter(Me.Label1.Text, False, System.Text.Encoding.Default)
'エンコーディングをShift-JISに指定する
textfile = New IO.StreamWriter(Me.Label1.Text, False, System.Text.Encoding.GetEncoding("Shift-JIS"))
For i = 1 To ListBox1.Items.Count
'Me.ListBox1.s = i - 1
textfile.WriteLine(Me.ListBox1.Items(i - 1))
Next
textfile.Close()
End If
End Sub
End Class

「作って覚える Visual Basic 2008 Express Edition 入門 」
は解説書で、付録DVDにExpress版が入っている。
09/10/07 13:48
Writeボタンを押すと、ListBoxの内容を、テキストファイルへ出力します。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fname As String
Dim ret As DialogResult
Dim TextFile As IO.StreamReader
Dim Line As String
Dim cnt As Integer
'PictureBox1のGraphicsオブジェクトを取得
Dim g As Graphics = PictureBox1.CreateGraphics()
Dim ystr As Integer
'ダイアログボックスの初期設定
With Me.OpenFileDialog1
.Title = "ファイルを開く"
.CheckFileExists = True
.RestoreDirectory = True
.Filter = "テキストファイル|*.txt;*.dat"
.FileName = "test.txt"
End With
'ダイアログボックスの表示
ret = Me.OpenFileDialog1.ShowDialog()
If ret = Windows.Forms.DialogResult.OK Then
fname = Me.OpenFileDialog1.FileName
Else
fname = ""
End If
If IO.File.Exists(fname) = False Then
MessageBox.Show("ファイルが見つかりません。", "通知")
Exit Sub
End If
'フォントオブジェクトの作成
Dim fnt As New Font("MS UI Gothic", 12)
Me.ListBox1.Items.Clear()
TextFile = New IO.StreamReader(fname, System.Text.Encoding.Default)
cnt = 0
Do While True
Line = TextFile.ReadLine()
If Line = Nothing Then
Exit Do
End If
Me.ListBox1.Items.Add(Line)
cnt = cnt + 1
'文字列を位置(0,0)、青色で表示
g.DrawString(Line, fnt, Brushes.Blue, 0, ystr)
ystr = ystr + 20
Loop
TextFile.Close()
'リソースを開放する
fnt.Dispose()
g.Dispose()
Label2.Text = cnt.ToString
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim ret As DialogResult
Dim textfile As IO.StreamWriter
Dim i As Integer
Dim cnt As Integer
cnt = Integer.Parse(Label2.Text)
'ダイアログボックスの初期設定
With Me.SaveFileDialog1
.RestoreDirectory = True
.OverwritePrompt = True
.Filter = "すべてのファイル(*.*)|*.*|" & "テキストファイル(*.txt)|*.txt"
.FileName = "ts.txt"
End With
'ダイアログボックスの表示
ret = Me.SaveFileDialog1.ShowDialog
If ret = Windows.Forms.DialogResult.OK Then
Me.Label1.Text = Me.SaveFileDialog1.FileName
'現在のファイルのエンコーディングで出力
'textfile = New IO.StreamWriter(Me.Label1.Text, False, System.Text.Encoding.Default)
'エンコーディングをShift-JISに指定する
textfile = New IO.StreamWriter(Me.Label1.Text, False, System.Text.Encoding.GetEncoding("Shift-JIS"))
For i = 1 To ListBox1.Items.Count
'Me.ListBox1.s = i - 1
textfile.WriteLine(Me.ListBox1.Items(i - 1))
Next
textfile.Close()
End If
End Sub
End Class
「作って覚える Visual Basic 2008 Express Edition 入門 」
は解説書で、付録DVDにExpress版が入っている。
[VisualBasic] ブログ村キーワード
まずは試しに昔もC言語などで作っていたアナログ時計を作り出した。
第一段階の秒針表示ができた。
でもこれだと、スクリーンセーバが起動しても秒針が表示されてしまう。
スクリーンセーバを超越した秒針だ。いいのか悪いのか...。
Public Class Form1
Dim sspub As Integer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim ss As Integer
Dim ssx As Integer
Dim ssy As Integer
Dim rss As Double
Dim ssxpub As Integer
Dim ssypub As Integer
Dim rsspub As Double
Label1.Text = Now()
ss = Integer.Parse(Now.ToString("ss"))
rsspub = Double.Parse(sspub) * 6 * Math.PI / 180.0
rss = Double.Parse(ss) * 6 * Math.PI / 180.0
ssxpub = Math.Sin(rsspub) * 100 + 125
ssypub = 125 - Math.Cos(rsspub) * 100
ssx = Math.Sin(rss) * 100 + 125
ssy = 125 - Math.Cos(rss) * 100
Dim startPoint As Point = PictureBox1.PointToScreen(New Point(125, 125))
Dim ssPoint As Point = PictureBox1.PointToScreen(New Point(ssx, ssy))
Dim ssPointpub As Point = PictureBox1.PointToScreen(New Point(ssxpub, ssypub))
ControlPaint.DrawReversibleLine(startPoint, ssPointpub, Color.Black)
ControlPaint.DrawReversibleLine(startPoint, ssPoint, Color.Black)
sspub = ss
End Sub
End Class

09/09/11 15:35
まずは試しに昔もC言語などで作っていたアナログ時計を作り出した。
第一段階の秒針表示ができた。
でもこれだと、スクリーンセーバが起動しても秒針が表示されてしまう。
スクリーンセーバを超越した秒針だ。いいのか悪いのか...。
Public Class Form1
Dim sspub As Integer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim ss As Integer
Dim ssx As Integer
Dim ssy As Integer
Dim rss As Double
Dim ssxpub As Integer
Dim ssypub As Integer
Dim rsspub As Double
Label1.Text = Now()
ss = Integer.Parse(Now.ToString("ss"))
rsspub = Double.Parse(sspub) * 6 * Math.PI / 180.0
rss = Double.Parse(ss) * 6 * Math.PI / 180.0
ssxpub = Math.Sin(rsspub) * 100 + 125
ssypub = 125 - Math.Cos(rsspub) * 100
ssx = Math.Sin(rss) * 100 + 125
ssy = 125 - Math.Cos(rss) * 100
Dim startPoint As Point = PictureBox1.PointToScreen(New Point(125, 125))
Dim ssPoint As Point = PictureBox1.PointToScreen(New Point(ssx, ssy))
Dim ssPointpub As Point = PictureBox1.PointToScreen(New Point(ssxpub, ssypub))
ControlPaint.DrawReversibleLine(startPoint, ssPointpub, Color.Black)
ControlPaint.DrawReversibleLine(startPoint, ssPoint, Color.Black)
sspub = ss
End Sub
End Class
[VisualBasic] ブログ村キーワード
いままで、結構Web関連CGIやPHPをやっていることが多かったが、最近昔結構やっていいた、VisualBasicを始めようかと考えた。今の最新版はVisualBasic2008.
2010がもう出るとの話だが、まずは2008でご機嫌うかがい。
早速、ツールをそろえないと...。
「作って覚える Visual Basic 2008 Express Edition 入門 」
は解説書で、付録DVDにExpress版が入っていて、練習にはもってこいだ。
09/09/08 21:53
いままで、結構Web関連CGIやPHPをやっていることが多かったが、最近昔結構やっていいた、VisualBasicを始めようかと考えた。今の最新版はVisualBasic2008.
2010がもう出るとの話だが、まずは2008でご機嫌うかがい。
早速、ツールをそろえないと...。
「作って覚える Visual Basic 2008 Express Edition 入門 」
は解説書で、付録DVDにExpress版が入っていて、練習にはもってこいだ。


































