質問編集履歴

4

コードの追加

2022/08/27 01:42

投稿

mimi77
mimi77

スコア27

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

コードを追加

2022/08/26 10:19

投稿

mimi77
mimi77

スコア27

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

内容の変更

2022/08/26 09:35

投稿

mimi77
mimi77

スコア27

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

内容の追記

2022/08/26 09:16

投稿

mimi77
mimi77

スコア27

test CHANGED
File without changes
test CHANGED
@@ -25,3 +25,5 @@
25
25
  テーブルからの印刷はできるのですが、今グリッドビューに入力したデータかどうかをどのように判定してよいかががわかりません。
26
26
  インサートする際に、アイデンティティを振ろうかと思ったのですが、番号のみではどのタイミングでインサートがされたかが不明なため困っております。
27
27
 
28
+ イメージとしては、1回目にインサートを行ったデータ(複数)に対しては 1 2回目にインサートをを行ったデータに対しては 2 といったようなインサートごとにグループ分けするための値を入れれば良いでしょうか。
29
+