Category: VisualBasic
Posted by: ekbt
Visual Basic から Microsoft SQL Server にアクセスするプログラミングの解説本を探してみた。この分野は結構少ないなあ。Olacleや他のRDB、PHPやJava関連の本は結構あるがなあ。この分野を詳しく習うのは講習会などにいったり、研修を受けてやるのが普通なのかな。


09/11/01 10:19
Category: VisualBasic
Posted by: ekbt
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
Category: VisualBasic
Posted by: ekbt
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
Category: VisualBasic
Posted by: ekbt
[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


null

09/09/11 15:35
Category: VisualBasic
Posted by: ekbt
[VisualBasic] ブログ村キーワード
いままで、結構Web関連CGIやPHPをやっていることが多かったが、最近昔結構やっていいた、VisualBasicを始めようかと考えた。今の最新版はVisualBasic2008.
2010がもう出るとの話だが、まずは2008でご機嫌うかがい。

早速、ツールをそろえないと...。



「作って覚える Visual Basic 2008 Express Edition 入門 」
は解説書で、付録DVDにExpress版が入っていて、練習にはもってこいだ。
09/09/08 21:53