質問編集履歴
4
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -65,5 +65,103 @@
|
|
65
65
|
</asp:TemplateField>
|
66
66
|
</Columns>
|
67
67
|
</asp:GridView>
|
68
|
+
|
69
|
+
|
70
|
+
aspx側 確定ボタンの記述
|
71
|
+
<asp:Button CssClass="gray inline" ID="Button2" Text="確定" runat="server" OnClick="btn_Confirm_Click" />
|
72
|
+
|
73
|
+
|
74
|
+
C# 側 確定ボタンを押した際の処理
|
75
|
+
protected void btn_Confirm_Click(object sender, EventArgs e)
|
76
|
+
{
|
77
|
+
|
78
|
+
if (CheckInput())
|
79
|
+
{
|
80
|
+
SqlConnection oConn = DBConnectionClass.DBConnect();
|
81
|
+
using (SqlCommand command = oConn.CreateCommand())
|
82
|
+
{
|
83
|
+
SqlTransaction tran = oConn.BeginTransaction(IsolationLevel.ReadCommitted);
|
84
|
+
foreach (GridViewRow gvData_Row in gvData.Rows)
|
85
|
+
{
|
86
|
+
InsertData(tran, gvData_Row);
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
この時点でインサートは行われています。(DBを更新するとGridviewのデータが入っています。)
|
94
|
+
この直後に帳票へデータ出力を行います。
|
95
|
+
|
96
|
+
|
97
|
+
C# 側 InsertDataの処理
|
98
|
+
protected void InsertData(SqlTransaction tran, GridViewRow rowData)
|
99
|
+
{
|
100
|
+
SqlConnection oConn = DBConnectionClass.DBConnect();
|
101
|
+
using (SqlCommand command = oConn.CreateCommand())
|
102
|
+
{
|
103
|
+
|
104
|
+
TextBox txtName = (TextBox)rowData.FindControl("txtName");
|
105
|
+
TextBox txtPostCode = (TextBox)rowData.FindControl("txtPostCode");
|
106
|
+
TextBox txtAddress = (TextBox)rowData.FindControl("txtAddress");
|
107
|
+
TextBox txtPhoneNum = (TextBox)rowData.FindControl("txtPhoneNum");
|
108
|
+
DropDownList Listbox_shohin = (DropDownList)rowData.FindControl("Listbox_shohin");
|
109
|
+
|
110
|
+
string RQUESTDES = ListboxSelect.Text;
|
111
|
+
string Estimate_Nm = lblEstimatedisp.Text;
|
112
|
+
string InformantCode = hidInformantCode.Value;
|
113
|
+
string Remarks = txtremarks.Text;
|
114
|
+
string Estimatenm = txtEstimatenm.Text;
|
115
|
+
|
116
|
+
|
117
|
+
if (txtName.Text == "" && txtPostCode.Text == "" && txtAddress.Text == "" && txtPhoneNum.Text == "")
|
118
|
+
{ }
|
119
|
+
else{
|
120
|
+
|
121
|
+
command.CommandText = string.Format(@"
|
122
|
+
INSERT INTO M_HENREI
|
123
|
+
(ESTIMATE_NO
|
124
|
+
,RQUESTDES
|
125
|
+
,NM_KANJI
|
126
|
+
,ZIP_CODE_RQU
|
127
|
+
,ADDRESS
|
128
|
+
,PHONE
|
129
|
+
,SHOHIN_NM
|
130
|
+
,INFORMANT_CODE
|
131
|
+
,REMARKS
|
132
|
+
,KENMEI)
|
133
|
+
VALUES
|
134
|
+
( '{0}'
|
135
|
+
,'{1}'
|
136
|
+
,'{2}'
|
137
|
+
,'{3}'
|
138
|
+
,'{4}'
|
139
|
+
,'{5}'
|
140
|
+
,'{6}'
|
141
|
+
,'{7}'
|
142
|
+
,'{8}'
|
143
|
+
,'{9}')"
|
144
|
+
, Estimate_Nm
|
145
|
+
, RQUESTDES
|
146
|
+
, string.IsNullOrEmpty(((TextBox)rowData.FindControl("txtName")).Text) ? "" : ((TextBox)rowData.FindControl("txtName")).Text
|
147
|
+
, string.IsNullOrEmpty(((TextBox)rowData.FindControl("txtPostCode")).Text) ? "" : ((TextBox)rowData.FindControl("txtPostCode")).Text
|
148
|
+
, string.IsNullOrEmpty(((TextBox)rowData.FindControl("txtAddress")).Text) ? "" : ((TextBox)rowData.FindControl("txtAddress")).Text
|
149
|
+
, string.IsNullOrEmpty(((TextBox)rowData.FindControl("txtPhoneNum")).Text) ? "" : ((TextBox)rowData.FindControl("txtPhoneNum")).Text
|
150
|
+
, string.IsNullOrEmpty(((DropDownList)rowData.FindControl("Listbox_shohin")).Text) ? "" : ((DropDownList)rowData.FindControl("Listbox_shohin")).Text
|
151
|
+
,InformantCode
|
152
|
+
,Remarks
|
153
|
+
,Estimatenm
|
154
|
+
);
|
155
|
+
command.ExecuteScalar();
|
156
|
+
oConn.Dispose();
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
68
166
|
```
|
69
167
|
|
3
コードを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
### 前提
|
2
1
|
|
3
2
|
OS windows10
|
4
3
|
Visual Studio2019
|
@@ -28,3 +27,43 @@
|
|
28
27
|
|
29
28
|
イメージとしては、1回目にインサートを行ったデータ(複数)に対しては 1 2回目にインサートをを行ったデータに対しては 2 といったようなインサートごとにグループ分けするための値を入れれば良いでしょうか。
|
30
29
|
|
30
|
+
|
31
|
+
```ここに言語を入力
|
32
|
+
<asp:GridView ID="gvData" runat="server" AutoGenerateColumns="false" CssClass="gridview_table_style" OnRowDataBound="gvData_RowDataBound" OnDataBound="gvData_DataBound" OnRowCreated="ContactList_RowCreated" style="margin: 10px 0 0 50px" ShowHeaderWhenEmpty="True">
|
33
|
+
<HeaderStyle Wrap="false" />
|
34
|
+
<Columns>
|
35
|
+
<asp:TemplateField>
|
36
|
+
<HeaderTemplate>名前</HeaderTemplate>
|
37
|
+
<ItemTemplate>
|
38
|
+
<asp:TextBox ID="txtName" Text='<%# Bind("NM_KANJI") %>' runat="server" style="text-align:left" />
|
39
|
+
</ItemTemplate>
|
40
|
+
</asp:TemplateField>
|
41
|
+
<asp:TemplateField>
|
42
|
+
<HeaderTemplate>郵便番号</HeaderTemplate>
|
43
|
+
<ItemTemplate>
|
44
|
+
<asp:TextBox ID="txtPostCode" Text='<%# Bind("ZIP_CODE_RQU") %>' CssClass="input_10 width_td_150_0 display_inlineblockt cv_hyphen cv_tolower ci_postal" runat="server" MaxLength="8" />
|
45
|
+
</ItemTemplate>
|
46
|
+
</asp:TemplateField>
|
47
|
+
<asp:TemplateField>
|
48
|
+
<HeaderTemplate>住所-</HeaderTemplate>
|
49
|
+
<ItemTemplate>
|
50
|
+
<asp:TextBox ID="txtAddress" Width="300px" Text='<%# Bind("ADDRESS") %>' runat="server" style="text-align:left" />
|
51
|
+
</ItemTemplate>
|
52
|
+
</asp:TemplateField>
|
53
|
+
<asp:TemplateField>
|
54
|
+
<HeaderTemplate>電話番号</HeaderTemplate>
|
55
|
+
<ItemTemplate>
|
56
|
+
<asp:TextBox ID="txtPhoneNum" Text='<%# Bind("PHONE") %>' runat="server" CssClass="width_td_150_0 ci_tel cv_tolower ci_maxlength20" MaxLength="13" />
|
57
|
+
</ItemTemplate>
|
58
|
+
</asp:TemplateField>
|
59
|
+
<asp:TemplateField>
|
60
|
+
<HeaderTemplate>商品名</HeaderTemplate>
|
61
|
+
<ItemTemplate>
|
62
|
+
<asp:DropDownList ID="Listbox_shohin" Text='<%# Bind("SHOHIN_NM") %>' runat="server" style="text-align:left" />
|
63
|
+
<asp:HiddenField ID="hdnHenreiCode" runat="server" Value='<%# Bind("HENREI_CODE") %>' />
|
64
|
+
</ItemTemplate>
|
65
|
+
</asp:TemplateField>
|
66
|
+
</Columns>
|
67
|
+
</asp:GridView>
|
68
|
+
```
|
69
|
+
|
2
内容の変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ASP.NET
|
1
|
+
ASP.NET GridViewのデータ判別方法
|
test
CHANGED
@@ -8,21 +8,22 @@
|
|
8
8
|
ASP.NETでグリッドビューを作成し、そこへデータを入力しています。
|
9
9
|
「確定」というボタンを押すと、入力したデータをテーブルへインサートし、
|
10
10
|
その後そのデータを帳票へ出力するというシステムを作成しています。
|
11
|
+
GridViewには、asp:TextBoxやasp:DropDownListを設定しております。
|
11
12
|
|
12
13
|
### 実現したいこと
|
13
14
|
実現したいこととしては、インサートをすればテーブルにデータがどんどんたまっていきますが、
|
14
|
-
帳票へ出力したいのはあくまで
|
15
|
+
帳票へ出力したいのはあくまでGridViewに入力したデータのみを出力したいです。
|
15
16
|
|
16
17
|
流れとしては
|
17
|
-
|
18
|
+
GridViewにデータ入力 → 確定 → テーブルへインサート → 帳票出力(GridViewのデータのみ)
|
18
19
|
|
19
20
|
となります。
|
20
21
|
|
21
|
-
|
22
|
+
GridViewには複数行データが入力可能です。
|
22
23
|
|
23
24
|
|
24
25
|
### 発生している問題・エラーメッセージ
|
25
|
-
テーブルからの印刷はできるのですが、今
|
26
|
+
テーブルからの印刷はできるのですが、今GridViewに入力したデータかどうかをどのように判定してよいかががわかりません。
|
26
27
|
インサートする際に、アイデンティティを振ろうかと思ったのですが、番号のみではどのタイミングでインサートがされたかが不明なため困っております。
|
27
28
|
|
28
29
|
イメージとしては、1回目にインサートを行ったデータ(複数)に対しては 1 2回目にインサートをを行ったデータに対しては 2 といったようなインサートごとにグループ分けするための値を入れれば良いでしょうか。
|
1
内容の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -25,3 +25,5 @@
|
|
25
25
|
テーブルからの印刷はできるのですが、今グリッドビューに入力したデータかどうかをどのように判定してよいかががわかりません。
|
26
26
|
インサートする際に、アイデンティティを振ろうかと思ったのですが、番号のみではどのタイミングでインサートがされたかが不明なため困っております。
|
27
27
|
|
28
|
+
イメージとしては、1回目にインサートを行ったデータ(複数)に対しては 1 2回目にインサートをを行ったデータに対しては 2 といったようなインサートごとにグループ分けするための値を入れれば良いでしょうか。
|
29
|
+
|