2009年4月24日金曜日
2009年4月21日火曜日
【VB】テーブルの指定した列の名前を取得
DataReader.GetName(列番号)
SqlCmd = New SqlCommand(pSQL.ToString, oCon)
iRec = SqlCmd.ExecuteReader()
While iRec.Read()
If iRecCount = 0 Then
pRetMSG = "カラム名レコードの編集"
For iCol = 0 To iRec.FieldCount - 1
If iCol = 0 Then
'フィールド名を代入
oRec(0) = iRec.GetName(iCol)
Else
oRec(0) &= vbTab & iRec.GetName(iCol)
End If
Next
End If
SqlCmd = New SqlCommand(pSQL.ToString, oCon)
iRec = SqlCmd.ExecuteReader()
While iRec.Read()
If iRecCount = 0 Then
pRetMSG = "カラム名レコードの編集"
For iCol = 0 To iRec.FieldCount - 1
If iCol = 0 Then
'フィールド名を代入
oRec(0) = iRec.GetName(iCol)
Else
oRec(0) &= vbTab & iRec.GetName(iCol)
End If
Next
End If
2009年4月17日金曜日
【Windows】OS起動ドライブのドライブレターを変更する
例
C:\とD:\を入れ替える。
C:\とD:\を入れ替える。
- レジストリエディタ(regedt)を起動
- HKEY_LOCAL_MACHINE\SYSTEM\MountedDevicesへ移動
- \DosDevices\C: を選択し、名前を \DosDevices\Z: などに変更
- \DosDevices\D: を選択し、名前を \DosDevices\C: に変更
- Z:に変更した \DosDevices\Z: を選択し、名前を \DosDevices\D: に変更
- レジストリエディタを終了する
- Windowsを再起動する。
【SQLServer】既存のmdfファイルからデーターベースを取り込む(インポート)
次のSQLを実行する。
CREATE DATABASE データベース名
ON PRIMARY (FILENAME = 'mdfファイルパス')
FOR ATTACH
GO
CREATE DATABASE データベース名
ON PRIMARY (FILENAME = 'mdfファイルパス')
FOR ATTACH
GO
2009年4月16日木曜日
【VB】データベースの接続に対してSQLを実行し、更新された(変更された)行数を取得する。
例
Rowsに更新された行数を取得する。
Dim Rows As Integer
Rows=Command.ExecuteNonQuery
Rowsに更新された行数を取得する。
Dim Rows As Integer
Rows=Command.ExecuteNonQuery
2009年4月13日月曜日
【VB】DatGridViewのカレントセル(アクティブ)を取得する
DataGridView.CurrentCell.ColumnIndex
DataGridView.CurrentCell.RowIndex
※どちらもoからカウントする。
DataGridView.CurrentCell.RowIndex
※どちらもoからカウントする。
【VB】DatGridViewの列数(カラム数)と行数(ロウ数)を取得する(調べる)
列数(カラム数)
DataGridView.ColumnCount
※1からカウント(0からカウントではない)
行数(ロウ数)
DataGridView.RowCount
※1からカウント(0からカウントではない)
※ただしDataGridView上で新規追加を認めている場合は+1
DataGridView.ColumnCount
※1からカウント(0からカウントではない)
行数(ロウ数)
DataGridView.RowCount
※1からカウント(0からカウントではない)
※ただしDataGridView上で新規追加を認めている場合は+1
2009年4月9日木曜日
【VB】【SQR CLR】SQL CLR の呼び出し方法の登録の構文
CREATE FUNCTION HelloWorld() RETURNS nvarchar(256) AS EXTERNAL NAME
アセンブリ名.アセンブリ実ファイル名(拡張子なし).メソッド名
GO
SQL Server 2005 自習書シリーズ 開発編 No.3.pdf
p10-11
アセンブリ名.アセンブリ実ファイル名(拡張子なし).メソッド名
GO
SQL Server 2005 自習書シリーズ 開発編 No.3.pdf
p10-11
【VB】【SQL CLR】アセンブリアセンブリをSQLServerへ登録する構文
CREATE ASSEMNLY アセンブリ名
FROM '登録するアセンブリパス'
WITH PERMISSION_SET = SAFE または EXTERNAL_ACCESS または UNSAFE
↑アセンブリの権限セットを指定。
FROM '登録するアセンブリパス'
WITH PERMISSION_SET = SAFE または EXTERNAL_ACCESS または UNSAFE
↑アセンブリの権限セットを指定。
【VB】DataSetにDataTableを追加する
'Viewを取得
dim dv as nwe DataView
dv.Table=OrderDataSet.Goods
'フィルタ設定
dv.RowFilter = "GoodsID LIKE 'F%'"
'フィルタ結果からデータテーブルを作成
dim tb as DataTable
tb = dv.ToTable
'テーブルの名前を変更
tb.tableNmae= "Foods"
'作成したテーブルをデータセットに追加
OrderDataSet.Tables.Add(tb)
'確認
dim t as DataTable
for Each t in OrderDataset.Tables
'テーブル名
Cnsole.WriteLine(T.tabliName)
'フィールド名
dim c as DataColumn
for Each c in t.columns
console.writeLine(controlChars.tab & c.ColumnName)
next
next
dim dv as nwe DataView
dv.Table=OrderDataSet.Goods
'フィルタ設定
dv.RowFilter = "GoodsID LIKE 'F%'"
'フィルタ結果からデータテーブルを作成
dim tb as DataTable
tb = dv.ToTable
'テーブルの名前を変更
tb.tableNmae= "Foods"
'作成したテーブルをデータセットに追加
OrderDataSet.Tables.Add(tb)
'確認
dim t as DataTable
for Each t in OrderDataset.Tables
'テーブル名
Cnsole.WriteLine(T.tabliName)
'フィールド名
dim c as DataColumn
for Each c in t.columns
console.writeLine(controlChars.tab & c.ColumnName)
next
next
【VB】DataViewからDataTableを作成する
'Viewを取得
dim dv as nwe DataView
dv.Table=OrderDataSet.Goods
'フィルタ設定
dv.RowFilter = "GoodsID LIKE 'F%'"
'フィルタ結果からデータテーブルを作成
dim tb as DataTable
tb = dv.ToTable
'確認
dim dr as DataRow
For Each dr in tb.rows
console.WiteLine(dr("GooodsID") & ControlChars.Tab & dr("GoodsName") & ControlChars.Tab & dr("Price") )
next
dim dv as nwe DataView
dv.Table=OrderDataSet.Goods
'フィルタ設定
dv.RowFilter = "GoodsID LIKE 'F%'"
'フィルタ結果からデータテーブルを作成
dim tb as DataTable
tb = dv.ToTable
'確認
dim dr as DataRow
For Each dr in tb.rows
console.WiteLine(dr("GooodsID") & ControlChars.Tab & dr("GoodsName") & ControlChars.Tab & dr("Price") )
next
【VB】DatView編集後、内容を破棄する
例
'Viewを取得
dim dv as new dataView
dv.table=OrderDataSet.Goods
'追加
dim drv as DataRowView
drv = dv.AddNew()
drv("GoodsID") = "Z001"
drv("GoodsName") = "湯たんぽ"
drv("Price") = "2000"
'値を破棄する
drv.EndEdit()
'Viewを取得
dim dv as new dataView
dv.table=OrderDataSet.Goods
'追加
dim drv as DataRowView
drv = dv.AddNew()
drv("GoodsID") = "Z001"
drv("GoodsName") = "湯たんぽ"
drv("Price") = "2000"
'値を破棄する
drv.EndEdit()
【VB】DatView編集後DataTableに内容を反映(更新)
'Viewを取得
dim dv as new dataView
dv.table=OrderDataSet.Goods
'追加
dim drv as DataRowView
drv = dv.AddNew()
drv("GoodsID") = "Z001"
drv("GoodsName") = "湯たんぽ"
drv("Price") = "2000"
'値を確定
drv.EndEdit()
dim dv as new dataView
dv.table=OrderDataSet.Goods
'追加
dim drv as DataRowView
drv = dv.AddNew()
drv("GoodsID") = "Z001"
drv("GoodsName") = "湯たんぽ"
drv("Price") = "2000"
'値を確定
drv.EndEdit()
【VB】DataViewに新しいレコードを追加する
例
'Viewを取得
dim dv as new DataView
dv.table=orderDataSet.Goods
'追加
dim drv as DataRowView
drv=dv.AddNew()
drv("goodsID")="Z0001"
drv("GoodsNmae") ="湯たんぽ"
drv(Price") = 2000
参考VB2005実践 p159
'Viewを取得
dim dv as new DataView
dv.table=orderDataSet.Goods
'追加
dim drv as DataRowView
drv=dv.AddNew()
drv("goodsID")="Z0001"
drv("GoodsNmae") ="湯たんぽ"
drv(Price") = 2000
参考VB2005実践 p159
【VB】DataViewでレコードをソート(並び替え)する
例
dim dv as new DataView
dv.Table = OrderDataSet.Goods
'Priceフィールドで昇順に並べる
dv.Sort="Price"
'dataGridViewに表示
DataGridView1.DataSource =dv
dim dv as new DataView
dv.Table = OrderDataSet.Goods
'Priceフィールドで昇順に並べる
dv.Sort="Price"
'dataGridViewに表示
DataGridView1.DataSource =dv
【VB】DataGridViewで指定した条件で抽出(検索)(フィルタ)
'viewを取得
dim dv as new DataView
dv.Table = OrderDataSet.Goods
'フィルタ
dv.RowFileter = "FoodsName LIKE 'つやつや%'"
'DataFridViewに表示
DataFridView1.DataSource = dv
dim dv as new DataView
dv.Table = OrderDataSet.Goods
'フィルタ
dv.RowFileter = "FoodsName LIKE 'つやつや%'"
'DataFridViewに表示
DataFridView1.DataSource = dv
【VB】変更の種類を変更してデータベースを更新する
「3行目の値を変更する」のみをUpdateする。
他の「1から2行目を削除」「新しくレコードを追加する」は反映されない例。
'削除
OrderDataSet.Goods(0).Delete()
OrderDataSet.Goods(1).Delete()
'値の変更(今回はこれが適用)
OrderDtaset.Goods(2).GoodsName="つやつや"
'追加
dim dr as OrderDataSet.GoodsRow
dr=OrderDataSet.Goods.newFoodsRow
dr.GoodsID ="Z0002"
dr.GoodsName = "花粉撃退マスク"
dr.price = 500
OrderDataSet.goods.Rows.add(dr)
'値を変更した行を取得
dim tb as DataTable
tb = OrderDataset.Goods.GetChanges(DataRowState.Modified)
'データベースを更新
goodsTabeleAdapter.Update(tb)
Messagebox.show("更新しました")
ポイント
tb = OrderDataset.Goods.GetChanges(DataRowState.Modified)
のModifiedが編集された行という意味
その他の状態一覧
他の「1から2行目を削除」「新しくレコードを追加する」は反映されない例。
'削除
OrderDataSet.Goods(0).Delete()
OrderDataSet.Goods(1).Delete()
'値の変更(今回はこれが適用)
OrderDtaset.Goods(2).GoodsName="つやつや"
'追加
dim dr as OrderDataSet.GoodsRow
dr=OrderDataSet.Goods.newFoodsRow
dr.GoodsID ="Z0002"
dr.GoodsName = "花粉撃退マスク"
dr.price = 500
OrderDataSet.goods.Rows.add(dr)
'値を変更した行を取得
dim tb as DataTable
tb = OrderDataset.Goods.GetChanges(DataRowState.Modified)
'データベースを更新
goodsTabeleAdapter.Update(tb)
Messagebox.show("更新しました")
ポイント
tb = OrderDataset.Goods.GetChanges(DataRowState.Modified)
のModifiedが編集された行という意味
その他の状態一覧
- 1Detached
作成した後、DataRowCollectionに追加されていない行 - 2Unchanged
編集されていない行 - 4Added
追加された行 - 8Deleted
削除された行 - 16Modified
編集された行
【VB】DataTable内の変更のあった行だけを取り出して新しいDataTableを作成
'削除した行を取得
dim tb as DataTable
tb=dataset.dataTabele.GetChanges(DataRowState.Deleted)
dim tb as DataTable
tb=dataset.dataTabele.GetChanges(DataRowState.Deleted)
【VB】行の状態(RowsStateでの管理)
- 1Detached
作成した後、DataRowCollectionに追加されていない行 - 2Unchanged
編集されていない行 - 4Added
追加された行 - 8Deleted
削除された行 - 16Modified
編集された行
【VB】主キー以外のフィールドでレコードを検索する
検索する値
dim key as string
key = inputbox("[GoodsName]"を入力","検索")
'検索
dim rr() as OederDtaset.gooodsRow
rr = OrderDtaSet.Goods.Select("GoodsName LIKE ' & "%'")
'確認
if dr Is Notheng then
messagebox.show("該当するレコードがありません")
Else
'検索したレコードを表示
dim s as string=""
dim i as integer
for i=0 to rr.length-1
s=s & rr(i).goodsID & ControlChars.Tab & rr(i).GoodsName & ControlChars.Tab & rr(i).Price & ControlChars.Tab
next
messagebox.show(s)
end if
dim key as string
key = inputbox("[GoodsName]"を入力","検索")
'検索
dim rr() as OederDtaset.gooodsRow
rr = OrderDtaSet.Goods.Select("GoodsName LIKE ' & "%'")
'確認
if dr Is Notheng then
messagebox.show("該当するレコードがありません")
Else
'検索したレコードを表示
dim s as string=""
dim i as integer
for i=0 to rr.length-1
s=s & rr(i).goodsID & ControlChars.Tab & rr(i).GoodsName & ControlChars.Tab & rr(i).Price & ControlChars.Tab
next
messagebox.show(s)
end if
【VB】主キーフィールドを使ってレコード検索(標準のデータセット)
検索する値
dim key as string
key = inputbox("[GoodsID]"を入力","検索")
'検索
dim dr as DataRow
dr = DtaSet.Tables.("goods").Rows.Find(key)
'確認
if dr Is Notheng then
messagebox.show("該当するレコードがありません")
Else
messagebox.show(dr.GoodsID & ControlChars.CrLf & dr.goodsName & ControlChars.CrLf & dr.Price)
end if
dim key as string
key = inputbox("[GoodsID]"を入力","検索")
'検索
dim dr as DataRow
dr = DtaSet.Tables.("goods").Rows.Find(key)
'確認
if dr Is Notheng then
messagebox.show("該当するレコードがありません")
Else
messagebox.show(dr.GoodsID & ControlChars.CrLf & dr.goodsName & ControlChars.CrLf & dr.Price)
end if
【VB】主キーフィールドを使ってレコード検索(型指定されたデータセット)
'検索する値
dim key as string
key = inputbox("[GoodsID]"を入力","検索")
'検索
dim dr as OederDtaset.gooodsRow
dr = OrderDtaSet.Goods.FindByGooodsID(key)
'確認
if dr Is Notheng then
messagebox.show("該当するレコードがありません")
Else
messagebox.show(dr.GoodsID & ControlChars.CrLf _
& dr.goodsName & ControlChars.CrLf _
& dr.Price)
end if
dim key as string
key = inputbox("[GoodsID]"を入力","検索")
'検索
dim dr as OederDtaset.gooodsRow
dr = OrderDtaSet.Goods.FindByGooodsID(key)
'確認
if dr Is Notheng then
messagebox.show("該当するレコードがありません")
Else
messagebox.show(dr.GoodsID & ControlChars.CrLf _
& dr.goodsName & ControlChars.CrLf _
& dr.Price)
end if
【VB】指定した行番号のレコードを編集
'先頭レコードを編集(型指定されたデータセットの場合)
OrderDataSet.Goods(0).rice=10000
''先頭レコードを編集(型指定されていないデータセットの場合)
DataSet.Tables("Goods").Rows(0)("Price") = 10000
OrderDataSet.Goods(0).rice=10000
''先頭レコードを編集(型指定されていないデータセットの場合)
DataSet.Tables("Goods").Rows(0)("Price") = 10000
【VB】空のDataRowにテーブルの構造(型)を継承(適用)する。
dim dr as DataRow
dr = dataset.tables("Goods").NewRow()
作成したDataRowは型指定されているわけではない。各フィールドに値を代入するときは次のようにする。
dr("gooodsID")="Z0001"
dr = dataset.tables("Goods").NewRow()
作成したDataRowは型指定されているわけではない。各フィールドに値を代入するときは次のようにする。
dr("gooodsID")="Z0001"
【VB】DataTable内のすべてのレコードにアクセスする
dim i as integer
for i = 0 toOrderDataset.Goods.rows.count-1
confole.writeLine(Orderdataset.goods(i).goodsID & ControlChars.tab _
& Orderdataset.goods(i).GoodsName& ControlChars.tab _
& Orderdataset.goods(i).Price)
next
for i = 0 toOrderDataset.Goods.rows.count-1
confole.writeLine(Orderdataset.goods(i).goodsID & ControlChars.tab _
& Orderdataset.goods(i).GoodsName& ControlChars.tab _
& Orderdataset.goods(i).Price)
next
【VB】自動で設定されたデータベースの接続文字列を使う(app.config)
My.Settings.OrderConnectionStringでアクセス可能
例
dim cn as new oleDbConnnection
cn.ConnectionString=My.Settings.OrderConnectionString
例
dim cn as new oleDbConnnection
cn.ConnectionString=My.Settings.OrderConnectionString
【VB】データベースから取得したデータをDataGridViewへ表示(非接続型)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'接続情報
Dim cn As New OleDbConnection
'接続情報
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;" _
& "data source=Order.mdb"
'DataAdapterの作成
Dim da As OleDbDataAdapter
da = New OleDbDataAdapter("select * from goods", cn)
'データを取得
Dim ds As New DataSet
da.Fill(ds, "goods")
'DataGridViewに表示
DataGridView1.DataSource = ds.Tables("goods")
End Sub
データベースに追加して更新
例
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'接続情報
Dim cn As New OleDbConnection
'接続情報
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;" _
& "data source=Order.mdb"
'DataAdapterの作成
Dim da As OleDbDataAdapter
da = New OleDbDataAdapter("select * from goods", cn)
'データを取得
Dim ds As New DataSet
da.Fill(ds, "goods")
'値を変更
ds.Tables("Goods").Rows(0)("GoodsName") = "つやつや"
'更新用コマンドを作成
Dim cmdbuilder As New OleDbCommandBuilder
cmdbuilder.DataAdapter = da
'更新
da.Update(ds, "Goods")
MessageBox.Show("更新しました")
End Sub
'接続情報
Dim cn As New OleDbConnection
'接続情報
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;" _
& "data source=Order.mdb"
'DataAdapterの作成
Dim da As OleDbDataAdapter
da = New OleDbDataAdapter("select * from goods", cn)
'データを取得
Dim ds As New DataSet
da.Fill(ds, "goods")
'DataGridViewに表示
DataGridView1.DataSource = ds.Tables("goods")
End Sub
データベースに追加して更新
例
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'接続情報
Dim cn As New OleDbConnection
'接続情報
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;" _
& "data source=Order.mdb"
'DataAdapterの作成
Dim da As OleDbDataAdapter
da = New OleDbDataAdapter("select * from goods", cn)
'データを取得
Dim ds As New DataSet
da.Fill(ds, "goods")
'値を変更
ds.Tables("Goods").Rows(0)("GoodsName") = "つやつや"
'更新用コマンドを作成
Dim cmdbuilder As New OleDbCommandBuilder
cmdbuilder.DataAdapter = da
'更新
da.Update(ds, "Goods")
MessageBox.Show("更新しました")
End Sub
【VB】レコード数を調べる
Goodsテーブルのレコード数を調べる
command.commandtext="select count(*) from goods"
priceフィールドの値が代入されているレコードをカウント
command.commandtext="select count(price) from goods"
command.commandtext="select count(*) from goods"
priceフィールドの値が代入されているレコードをカウント
command.commandtext="select count(price) from goods"
【VB】DdataReaderにデータを取得させる
dataReader=command.ExecuteReader()で取得
例
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'接続情報
Dim cn As New System.Data.OleDb.OleDbConnection
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;" _
& "data source="Order.mdb"
'選択コマンド
Dim cmd As New OleDbCommand
cmd.Connection = cn
cmd.CommandText = "select * from goods"
'接続
cn.Open()
MessageBox.Show("接続しました")
Dim dreader As OleDbDataReader
dreader = cmd.ExecuteReader
'DataReaderの内容を確認
Dim i As Integer
Do While dreader.Read()
For i = 0 To dreader.FieldCount - 1
Console.Write(dreader(i) & ControlChars.Tab)
Next
Console.WriteLine()
Loop
'切断
cn.Close()
End Sub
例
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'接続情報
Dim cn As New System.Data.OleDb.OleDbConnection
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;" _
& "data source="Order.mdb"
'選択コマンド
Dim cmd As New OleDbCommand
cmd.Connection = cn
cmd.CommandText = "select * from goods"
'接続
cn.Open()
MessageBox.Show("接続しました")
Dim dreader As OleDbDataReader
dreader = cmd.ExecuteReader
'DataReaderの内容を確認
Dim i As Integer
Do While dreader.Read()
For i = 0 To dreader.FieldCount - 1
Console.Write(dreader(i) & ControlChars.Tab)
Next
Console.WriteLine()
Loop
'切断
cn.Close()
End Sub
【VB】データベースへ接続するための準備(ADO.NET)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'接続情報
Dim cn As New System.Data.OleDb.OleDbConnection
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;" _
& "data source=Order.mdb"
'接続
cn.Open()
MessageBox.Show("接続しました")
'切断
cn.Close()
MessageBox.Show("切断しました")
End Sub
SQLコマンドの宣言例
'選択コマンド
Dim cmd As New OleDbCommand
cmd.Connection = cn
cmd.CommandText = "select * from Foods"
実際にデータ取得
Dim dreader As OleDbDataReader
dreader = cmd.ExecuteReader
MessageBox.Show("取得しました")
'接続情報
Dim cn As New System.Data.OleDb.OleDbConnection
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;" _
& "data source=Order.mdb"
'接続
cn.Open()
MessageBox.Show("接続しました")
'切断
cn.Close()
MessageBox.Show("切断しました")
End Sub
SQLコマンドの宣言例
'選択コマンド
Dim cmd As New OleDbCommand
cmd.Connection = cn
cmd.CommandText = "select * from Foods"
実際にデータ取得
Dim dreader As OleDbDataReader
dreader = cmd.ExecuteReader
MessageBox.Show("取得しました")
2009年4月6日月曜日
【VB】データベースでキーワードを指定して絞り込み検索
検索機能を追加するにはBindingSource.Filterメソッドを使用する。
例
「Customers」というテーブルの「CustName」 列から「txtSearch」テキストボックス内のキーワードから検索
Me.CustomersBindingSource.Filter = "CustName LIKE '" & txtSearch.Text & "'"
※このままでは全文検索になる。(あいまい検索にはならない)
キーワードによるフィルターを解除するには
Me.CustomersBindingSource.RemoveFilter()
例
「Customers」というテーブルの「CustName」 列から「txtSearch」テキストボックス内のキーワードから検索
Me.CustomersBindingSource.Filter = "CustName LIKE '" & txtSearch.Text & "'"
※このままでは全文検索になる。(あいまい検索にはならない)
キーワードによるフィルターを解除するには
Me.CustomersBindingSource.RemoveFilter()
【VB】データベースを扱う上での役割
・BindingNavigator
データベースを操作するために使うツールバー
・BindingSource
フォーム上のコントロールとデータセットを結び透けるために使われる
・TableAdapter
データセットとデータベースとの間でデータをやり取りするために使われる
・TableAdapterManager
コントロールはデータベースの更新順序を変えるなどデータの保存をきめ細かく、簡単に実行するために使用する
参考
基礎VisualBasic2008 (インプレス出版)
Chapter10データベースを取り扱う p406
データベースを操作するために使うツールバー
・BindingSource
フォーム上のコントロールとデータセットを結び透けるために使われる
・TableAdapter
データセットとデータベースとの間でデータをやり取りするために使われる
・TableAdapterManager
コントロールはデータベースの更新順序を変えるなどデータの保存をきめ細かく、簡単に実行するために使用する
参考
基礎VisualBasic2008 (インプレス出版)
Chapter10データベースを取り扱う p406
【VB】クリップボードを使う
使用例
lblFortune.Textの文字列をコピーする。
Clipboard.SetData(DataFormats.Text, lblFortune.Text)
クリップボードにコピーできるデータの形式
lblFortune.Textの文字列をコピーする。
Clipboard.SetData(DataFormats.Text, lblFortune.Text)
クリップボードにコピーできるデータの形式
- DataFormats.Bitmap
Windowsビットマップ形式 - DataFormats.EnhancedMetafile
拡張メタファイル形式 - DataFormats.Html
HTMLテキスト - DataFormats.Text
ANSIテキスト文字列 - DataFormats.UnicodeText
Unicodeテキスト文字列
【VB】変数で参照されたオブジェクトのイベントを利用するには
変数の宣言に Private WithEventsを追加する
例
Private WithEvents picFace As PictureBox
例
Private WithEvents picFace As PictureBox
【VB】入力した値の範囲を指定する
例
1~10までの範囲を許可する。その範囲外の値を設定しようとしたら1~10までの値になる。
value '入力された値が入っている変数
mGrowth '範囲内の変数
mGrowth = Math.Min(10, Math.Max(1, value))
1~10までの範囲を許可する。その範囲外の値を設定しようとしたら1~10までの値になる。
value '入力された値が入っている変数
mGrowth '範囲内の変数
mGrowth = Math.Min(10, Math.Max(1, value))
2009年4月3日金曜日
【VB】数字を16進数文字列に変換
- 大文字に変換表示
ToString("X") - 小文字に変換
ToString("x") - 大文字2桁で変換
ToString("X2")
ミリオンウェーブズ 「18.数値を16進数文字列に変換するには」
http://hiros-dot.net/PowerShell/string/string18.htm
【VB】フォーム上のコントロールなどの値(設定値)を保存(保持)する
- 保存したいコントロールのプロパティの「Application Settings」を選択し、「+」をクリック
- 「Property Binding」の欄をクリック
- 「…」をクリック。
- 保存したい項目(値)を選んで「▼」をクリック
- 「新規」をクリック
- 「新しいアプリケーションの設定」ダイアログボックスで「name」欄に自分で付けたい設定の名前を入力し、OKをクリックする。
基礎VisualBacic2008(インプレス出版)
p.298 「プログラムの設定値を保存する」
2009年4月2日木曜日
【VB】現在の曜日を取得する
Today.DayOfWeek
0が日曜日
1が月曜日…
となる。
書式を指定するには
Today.DayOfWeek.ToString("ddd")
「Sun」~「Sat」
Today.DayOfWeek.ToString("dddd")
「Sunday」~「Saturday」
0が日曜日
1が月曜日…
となる。
書式を指定するには
Today.DayOfWeek.ToString("ddd")
「Sun」~「Sat」
Today.DayOfWeek.ToString("dddd")
「Sunday」~「Saturday」
【VB】配列変数のサイズ(要素数)を変更する
ReDim 配列変数名(最大要素数)
※だたし元のデータは破棄される
例
ReDim x(5)
破棄されない方法はPreserveを追加する。
例
ReDim Preserve x(5)
※だたし元のデータは破棄される
例
ReDim x(5)
破棄されない方法はPreserveを追加する。
例
ReDim Preserve x(5)
【VB】書式を指定して数値を文字列へ変換(カンマ区切りの¥など)
例
変数名.ToString(#,##0円)
「3600」の場合「3,600円」へ変換される。
基礎VisualBacic2008(インプレス出版)
p177
変数名.ToString(#,##0円)
「3600」の場合「3,600円」へ変換される。
- 「D5」で10進数5桁で表示
- 「F3」は小数点以下3桁で出力
基礎VisualBacic2008(インプレス出版)
p177
【VB】数値(整数)のみが入力されたがどうか調べる
文字列を整数に変換するには
Integer.TryParse(変換前の文字列,変換後の文字列)を使用する。もし整数でなければfalse値を返すので以下のように利用する。
使用例
If Integer.TryParse(変換前の文字列,変換後の文字列)=False Then
整数でない場合の処理(小数も含む)
Else
※下記のコードはうまくいかなかったことがある。
ValクラスとIsNumericを組み合わせて数値型に変換できるかチェックする。
例
If (TxtBox1.Text="") Or (IsNumeric(Val(TxtBox1.Text)) = False) then
数値型へ変換不可の場合
End if
Integer.TryParse(変換前の文字列,変換後の文字列)を使用する。もし整数でなければfalse値を返すので以下のように利用する。
使用例
If Integer.TryParse(変換前の文字列,変換後の文字列)=False Then
整数でない場合の処理(小数も含む)
Else
※下記のコードはうまくいかなかったことがある。
ValクラスとIsNumericを組み合わせて数値型に変換できるかチェックする。
例
If (TxtBox1.Text="") Or (IsNumeric(Val(TxtBox1.Text)) = False) then
数値型へ変換不可の場合
End if
【VB】数字(Integerなど)を文字列(String型など)に変換する
数字(Integerなど)を文字列(String型など)に変換
例
変換したい値または変数.ToString
または
CStr ( 変換したい値または変数)
例
変換したい値または変数.ToString
または
CStr ( 変換したい値または変数)
【VB】文字型(Stringなど)を数値型(Integerなど)へ変換(小数は四捨五入)
Cintクラスを使う
使用例
Str= CInt(TxtBox1.Text)
Valクラスを使う
Str = Val(TxtBox1.Text)
Integer型に用意されているParseメソッドを利用する
使用例
TotalCount = Integer.Parse(OneLine)
※なお整数以外はFalseを返す。
使用例
Str= CInt(TxtBox1.Text)
Valクラスを使う
Str = Val(TxtBox1.Text)
Integer型に用意されているParseメソッドを利用する
使用例
TotalCount = Integer.Parse(OneLine)
※なお整数以外はFalseを返す。
【VB】イミディエイトウインドウ(プロンプトみたいなやつ)を表示させる
「デバック」→「ウインドウ」→「イミディエイト」を選択。
参考
参考
- 基礎VisualBacic2008(インプレス出版)
p103 イミディエイトウインドウが表示されないときは
【VB】変数のデータ型
- boolean
TrueかFalse - Byte
0から255までの整数 - Single
0から2の31乗(約20億) - Date
西暦1年1月1日午前0:00:00~9999年12月31日午後11:59:59までの日付と時刻 - Char
1文字(0から65535までの文字コード) - Decimal
小数点無であれば79228162514264337593543950335 ~ 79228162514264337593543950335
小数の桁数が28桁であれば-7.9228162514264337593543950335 ~ 7.9228162514264337593543950335
一番細かい値(分解能)は0.0000000000000000000000000001 - Short
-32768 ~ 32767までの数字(小数なし) - Integer
-2147483648 ~ 2147483647までの数字(小数なし) - String
0 個 ~ 約 20 億個の文字 (Unicode)
VB中学校 - データ型
http://homepage1.nifty.com/rucio/main/kiso/DataType.htm
登録:
投稿 (Atom)