ストアドの列名をかえてDataGridで表示したい。
- 題名: ストアドの列名をかえてDataGridで表示したい。
- 著者: ゆうこ
- 日時: 2005/11/14 9:47:17
- ID: 13693
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: ストアドの列名をかえてDataGridで表示したい。
- 著者: trapemiya
- 日時: 2005/11/15 13:47:32
- ID: 13708
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: ストアドの列名をかえてDataGridで表示したい。
- 著者: ゆうこ
- 日時: 2005/11/15 19:07:30
- ID: 13715
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: ストアドの列名をかえてDataGridで表示したい。
- 著者: trapemiya
- 日時: 2005/11/15 21:19:23
- ID: 13724
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: ストアドの列名をかえてDataGridで表示したい。
- 著者: ゆうこ
- 日時: 2005/11/16 12:19:05
- ID: 13731
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: ストアドの列名をかえてDataGridで表示したい。
- 著者: trapemiya
- 日時: 2005/11/16 17:23:25
- ID: 13737
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: ストアドの列名をかえてDataGridで表示したい。
- 著者: ゆうこ
- 日時: 2005/11/17 19:07:53
- ID: 13763
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: ストアドの列名をかえてDataGridで表示したい。
- 著者: trapemiya
- 日時: 2005/11/17 20:20:18
- ID: 13765
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[8]: ストアドの列名をかえてDataGridで表示したい。
- 著者: ゆうこ
- 日時: 2005/11/24 21:56:43
- ID: 13864
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつも参考にさせていただいております。
下記のようにDB内にあるデータベースに接続し、列名をかえて表示したいのですが、なかなか上手くいきません。ご存知の方ご教授ねがいます。
環境はOS XPpro VB.net2003 MSDEです。
Sub DataGrid_VIEW()
Dim cd As New SqlCommand
Dim da As New SqlDataAdapter(cd)
Dim ds As DataSet = New DataSet("SE_JOB_T")
Dim dt As DataGridTableStyle
Dim year As DataGridTextBoxColumn
Dim month As DataGridTextBoxColumn
Dim DV As DataView
Dim J_YEAR As SqlParameter
Dim J_MONTH As SqlParameter
Try
Call SQL_OPEN()
cd.CommandText = "SE_JOB_T"
cd.Connection = CN
cd.CommandType = CommandType.StoredProcedure
cd.Parameters.Clear()
J_YEAR = cd.Parameters.Add("@J_YEAR", SqlDbType.Int)
: J_YEAR.Value = Me.txtYEAR.Text
J_MONTH = cd.Parameters.Add("@J_MONTH", SqlDbType.Int)
: J_MONTH.Value = Me.txtMONTH.Text
da.Fill(ds)
DV = New DataView(ds.Tables("SE_JOB_T"))
DV.AllowNew = False
dt = New DataGridTableStyle
dt.AllowSorting = False
dt.MappingName = "SE_JOB_T"
Me.dgTIMECARD.TableStyles.Clear()
Me.dgTIMECARD.TableStyles.Add(dt)
dt.GridColumnStyles.Clear()
year = New DataGridTextBoxColumn
year.MappingName = "J_YEAR"
year.HeaderText = "年"
year.NullText = ""
year.Width = 100
dt.GridColumnStyles.Add(year)
dt.GridColumnStyles.Clear()
month = New DataGridTextBoxColumn
month.MappingName = "J_MONTH"
month.HeaderText = "月"
month.NullText = ""
month.Width = 100
dt.GridColumnStyles.Add(month)
Me.dgTIMECARD.DataSource = DV
Call SQL_CLOSE()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
ストアドプロシージャー
CREATE PROCEDURE SE_JOB_T
(
@J_YEAR NUMERIC(4,0),
@J_MONTH NUMERIC(2,0)
)
AS
SELECT
M.J_DATE,
M.J_WEEK,
YEAR(M.J_DATE) AS J_YEAR,
MONTH(M.J_DATE) AS J_MONTH,
DAY(M.J_DATE) AS J_DAY,
M.JOB_TYPE,
M.KIHON_T,
(
SELECT
ROUND(SUM(S1.KIHON_T),3)
FROM VI_JOB_T AS S1
WHERE S1.J_DATE <= M.J_DATE
AND J_YEAR = @J_YEAR
AND J_MONTH = @J_MONTH
) AS KIHON_TO,
(
SELECT
ROUND(SUM(S2.ZANGYOU_T),3)
FROM VI_JOB_T AS S2
WHERE S2.J_DATE <= M.J_DATE
AND J_YEAR = @J_YEAR
AND J_MONTH = @J_MONTH
) AS ZANGYOU_TO,
(
SELECT
ROUND(SUM(S3.SINYA_T),3)
FROM VI_JOB_T AS S3
WHERE S3.J_DATE <= M.J_DATE
AND J_YEAR = @J_YEAR
AND J_MONTH = @J_MONTH
)
AS SINYA_TO,
M.ZANGYOU_T,
M.SINYA_T,
M.DRIVE_S,
M.DRIVE_E,
CASE JOB_TYPE
WHEN 0 THEN
ROUND(KIHON_T * (SELECT K_PAY FROM PAY_MONEY_T),0)
WHEN 1 THEN
0
END AS K_TOTAL,
CASE JOB_TYPE
WHEN 0 THEN
0
WHEN 1 THEN
ROUND(KIHON_T * (SELECT Z_PAY FROM PAY_MONEY_T),0)
END AS KY_TOTAL,
ROUND(ZANGYOU_T * (SELECT Z_PAY FROM PAY_MONEY_T),0) AS Z_TOTAL,
ROUND(SINYA_T * (SELECT S_PAY FROM PAY_MONEY_T),0) AS S_TOTAL,
CASE JOB_TYPE
WHEN 0 THEN
ROUND(DRIVE_S * (SELECT D_PAY FROM PAY_MONEY_T) + DRIVE_E * (SELECT D_PAY FROM PAY_MONEY_T),0)
WHEN 1 THEN
ROUND(DRIVE_S * (SELECT SD_PAY FROM PAY_MONEY_T) +DRIVE_E * (SELECT SD_PAY FROM PAY_MONEY_T),0)
END AS DV_TOTAL
FROM JOB_T AS M
WHERE YEAR(J_DATE) = @J_YEAR
AND MONTH(J_DATE) = @J_MONTH
ORDER BY J_YEAR,J_MONTH