DOBON.NETプログラミング掲示板過去ログ
列同士の計算と指定列へ計算結果表示方法
題名: 列同士の計算と指定列へ計算結果表示方法
著者: 普通の会社員
URL:
http://homepage3.nifty.com/e-nethatano/
日時: 2006/04/03 10:27:32
ID: 15169
この記事の返信元:
(なし)
この記事への返信:
[15171]
Re[1]: 列同士の計算と指定列へ計算結果表示方法
trapemiya
2006/04/03 10:48:24
ツリーを表示
環境/言語:[VB.NET 2003 Windows2000 Framework1.1]
分類:[.NET]
2006/04/03(Mon) 10:34:26 編集(投稿者)
お世話になります。
txtファイルからSELECT検索して、2つの列同士を計算させて、指定の列へ計算結果を入れたいのですが、指定列に計算結果を入れる方法が分からず困っています。
SELECT検索で「NulAS カラム名」を行なうと「New DataColumn」が使えないみたいで怒られます。
下のサンプルで、<値2>と<備考>の間に、値1と値2の平均値を入れたいのです。
何方かご教示をお願いします。
▼ここから
Imports System.Data.OleDb
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim oConn As New OleDbConnection
Dim oCommand As New OleDbCommand
Dim oDataSet As New DataSet
Dim oDataAdapter As New OleDbDataAdapter
'DataTableオブジェクトの作成
Dim dt As DataTable
dt = New DataTable("DataTable1")
Try
'DB接続文字列の設定
'注:プロジェクトファイルホルダの下にあるbinホルダにcsvファイルを置く
oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + _
"Data Source=C:\;" + _
"Extended Properties=""Text;HDR=YES;FMT=Delimited"""
'「列計算サンプル.txt」のデータ
'<LotNo>,<値1>,<値2>, <備考>
' A1, 1, 6, P
' A2, 2, 7, B
' A3, 3, 8, C
' A4, 4, 9, D
' A5, 5, 10, E
'コネクションの設定
oCommand.Connection = oConn
'SQL文の設定
oCommand.CommandText = _
"SELECT LotNo,値1,値2,null AS 値AVE,備考 FROM 列計算サンプル.txt"
'計算結果列<値AVE>が追加された状態
'<LotNo>,<値1>, <値2>, <値AVE>,<備考>
'データを取得する
oDataAdapter.SelectCommand = oCommand
oDataSet.Clear()
oDataAdapter.Fill(oDataSet)
dt = oDataSet.Tables(oDataSet.Tables(0).ToString)
'値AVEの計算
Dim dc As DataColumn
dc = New DataColumn("値AVE", GetType(Integer))
dc.Expression = "(値1 + 値2) / 2"
dt.Columns.Add(dc)
'データグリッドにtxtのデータを連結する
DataGrid1.DataSource = dt
Catch oExcept As Exception
'例外が発生した時の処理
MessageBox.Show(oExcept.Message, "エラー")
End Try
End Sub
End Class
▲ここまで
題名: Re[1]: 列同士の計算と指定列へ計算結果表示方法
著者: trapemiya
URL:
http://blogs.wankuma.com/trapemiya
日時: 2006/04/03 10:48:24
ID: 15171
この記事の返信元:
[15169]
列同士の計算と指定列へ計算結果表示方法
普通の会社員
2006/04/03 10:27:32
この記事への返信:
[15172]
Re[2]: 列同士の計算と指定列へ計算結果表示方法
普通の会社員
2006/04/03 11:38:05
[解決]
ツリーを表示
SELECT LotNo,値1,値2,(値1 + 値2) / 2 AS 値AVE,備考 FROM 列計算サンプル.txt
単純に上のような感じでできませんでしたっけ? 値1と値2は小数点型にキャストしないと、平均が整数で丸められるかもしれません。
題名: Re[2]: 列同士の計算と指定列へ計算結果表示方法
著者: 普通の会社員
URL:
http://homepage3.nifty.com/e-nethatano/
日時: 2006/04/03 11:38:05
ID: 15172
この記事の返信元:
[15171]
Re[1]: 列同士の計算と指定列へ計算結果表示方法
trapemiya
2006/04/03 10:48:24
この記事への返信:
(なし)
ツリーを表示
trapemiyaさん、ありがとうございます。
SELECT文に埋め込む方法があったのですね。
以下に変更しましたところ、無事に小数点以下も取得できるようになりました。
"SELECT LotNo,値1,値2,((CDbl(値1)+CDbl(値2))/2) AS 値AVE,備考 FROM 列計算サンプル.txt"
ありがとうございました。また、宜しくお願いします。
解決済み!
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
2006/04/03(Mon) 10:34:26 編集(投稿者)
お世話になります。
txtファイルからSELECT検索して、2つの列同士を計算させて、指定の列へ計算結果を入れたいのですが、指定列に計算結果を入れる方法が分からず困っています。
SELECT検索で「NulAS カラム名」を行なうと「New DataColumn」が使えないみたいで怒られます。
下のサンプルで、<値2>と<備考>の間に、値1と値2の平均値を入れたいのです。
何方かご教示をお願いします。
▼ここから
Imports System.Data.OleDb
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim oConn As New OleDbConnection
Dim oCommand As New OleDbCommand
Dim oDataSet As New DataSet
Dim oDataAdapter As New OleDbDataAdapter
'DataTableオブジェクトの作成
Dim dt As DataTable
dt = New DataTable("DataTable1")
Try
'DB接続文字列の設定
'注:プロジェクトファイルホルダの下にあるbinホルダにcsvファイルを置く
oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + _
"Data Source=C:\;" + _
"Extended Properties=""Text;HDR=YES;FMT=Delimited"""
'「列計算サンプル.txt」のデータ
'<LotNo>,<値1>,<値2>, <備考>
' A1, 1, 6, P
' A2, 2, 7, B
' A3, 3, 8, C
' A4, 4, 9, D
' A5, 5, 10, E
'コネクションの設定
oCommand.Connection = oConn
'SQL文の設定
oCommand.CommandText = _
"SELECT LotNo,値1,値2,null AS 値AVE,備考 FROM 列計算サンプル.txt"
'計算結果列<値AVE>が追加された状態
'<LotNo>,<値1>, <値2>, <値AVE>,<備考>
'データを取得する
oDataAdapter.SelectCommand = oCommand
oDataSet.Clear()
oDataAdapter.Fill(oDataSet)
dt = oDataSet.Tables(oDataSet.Tables(0).ToString)
'値AVEの計算
Dim dc As DataColumn
dc = New DataColumn("値AVE", GetType(Integer))
dc.Expression = "(値1 + 値2) / 2"
dt.Columns.Add(dc)
'データグリッドにtxtのデータを連結する
DataGrid1.DataSource = dt
Catch oExcept As Exception
'例外が発生した時の処理
MessageBox.Show(oExcept.Message, "エラー")
End Try
End Sub
End Class
▲ここまで