質問タイトルがわかりにくいかもしれません。ご勘弁ください。
ASP.NET Webフォームアプリに関する質問です。
演習で、データベースを更新できるしくみを実装中です。
(実装機能については以前させていただいたこちらの質問で記載していたものと類似していますが、構成や機能が一部異なりましたので、新たに質問させていただきました。)
※OSはWindows7、.NET Framework4、Visual Stdio 2010、SQLserver2012、IE11を利用しています。
更新先のテーブル構成は以上のような感じで、
result1~result5 には"はい"、"いいえ"、"未回答"の回答いずれかが、
pointには格納された回答に応じた点数(各回答が「はい」ならpoint+1、「いいえ」ならpoint-1、「未回答」なら加減なしで判定し、最終値を格納)が、dateには格納日が格納されます。
「編集」ボタンをおすと、フォームビューで表示した過去の回答(ラベルコントロールの内容)をもとに、
ドロップダウンリストで回答が可能になります。
「登録」ボタンを押すと、ドロップダウンリストで選択された回答によってポイントを計算し、日付とともに同時にデータベースに格納したいのですが、どのように記述すればよいのでしょうか。
10/02 17:00編集(タイトル変更)
Select Case DropDownList1.DirectCast(FormView1.FindControl("DropDownList1"), DropDownList).SelectedValue
の記述で、目に見えるエラーは改善されたようですが、
データベース上ではresult1~result5までの回答データが更新されるだけで、点数(point)と日付(date)は更新がなされない状況です。
10/2 17:30編集
strSQL = "UPDATE tbl_testRg" & " SET point = " & point & "," & " date = " & "'" & dtToday & "'" & " WHERE 更新先フィールドのID(記述方法がわかりません)"
の部分で「& "'" & dtToday & "'" &」の記述にミスがあり、改善したところ、
テスト用にWHERE ID = 1としてID:1のデータ編集の場合のみ正常に動作することが確認できました。
元にするフィールドのIDをここでどう記述すればよいのかがわかりませんので、教えていただきたいです。
VB
1Protected Sub FormView1_ItemUpdating(sender As Object, e As System.Web.UI.WebControls.FormViewUpdateEventArgs) Handles FormView1.ItemUpdating 2 3 Dim point As Integer 4 5 Dim dtToday As DateTime = Date.Today 6 7 /・・・質問5つ分(繰り返し文は不問とします)・・・/ 8 Select Case DropDownList1.DirectCast(FormView1.FindControl("DropDownList1"), DropDownList).SelectedValue 9 Case "はい" 10 point = point + 1 11 Case "いいえ" 12 point = point - 1 13 End Select 14 15 Dim strSQL As String 16 strSQL = "UPDATE tbl_testRg" & 17 " SET point = " & point & "," & 18 " date = " & "'" & dtToday & "'" & 19 " WHERE 更新先フィールドのID(記述方法がわかりません)" 20 21 Dim cnStr As String = System.Configuration.ConfigurationManager. 22 ConnectionStrings("○○○○○○ConnectionString").ConnectionString 23 24 Using connection As New SqlConnection(cnStr) 25 26 Dim command As New SqlCommand(strSQL, connection) 27 28 connection.Open() 29 30 Try 31 command.ExecuteNonQuery() 32 33 Catch ex As Exception 34 35 lblMsg.Text = "エラー発生のため、処理を中止します! </ br>" & ex.Message 36 37 End Try 38 connection.Close() 39 End Using 40 End Sub
FormView部分
1<asp:SqlDataSource ID="SqlDataSource1" runat="server" 2 ConnectionString="<%$ ConnectionStrings:testdb_tinoueConnectionString %>" 3 DeleteCommand="DELETE FROM [tbl_testRg] WHERE [ID] = @ID" 4 InsertCommand="INSERT INTO [tbl_testRg] ([ID], [result1], [result2], [result3], [result4], [result5]) VALUES (@ID, @result1, @result2, @result3, @result4, @result5)" 5 SelectCommand="SELECT * FROM [tbl_testRg]" 6 UpdateCommand="UPDATE [tbl_testRg] SET [result1] = @result1, [result2] = @result2, [result3] = @result3, [result4] = @result4, [result5] = @result5 WHERE [ID] = @ID"> 7 <DeleteParameters> 8 <asp:Parameter Name="ID" Type="Int32" /> 9 </DeleteParameters> 10 <InsertParameters> 11 <asp:Parameter Name="ID" Type="Int32" /> 12 <asp:Parameter Name="result1" Type="String" /> 13 /・・・質問5つ分・・・/ 14 </InsertParameters> 15 <UpdateParameters> 16 <asp:Parameter Name="result1" Type="String" /> 17 /・・・質問5つ分・・・/ 18 <asp:Parameter Name="ID" Type="Int32" /> 19 </UpdateParameters> 20 </asp:SqlDataSource> 21 <asp:FormView ID="FormView1" runat="server" AllowPaging="True" 22 DataKeyNames="ID" DataSourceID="SqlDataSource1"> 23 <EditItemTemplate> 24 <table cellpadding="0" cellspacing="0" class="style3"> 25 <tr> 26 <td> 27 ID</td> 28 <td> 29 <asp:Label ID="IDLabel1" runat="server" Text='<%# Eval("ID") %>' /> 30 </td> 31 </tr> 32 <tr> 33 <td> 34 質問1</td> 35 <td> 36 <asp:DropDownList ID="DropDownList1" runat="server" 37 SelectedValue='<%# Bind("result1") %>'> 38 <asp:ListItem Value="はい">はい</asp:ListItem> 39 <asp:ListItem Value="いいえ">いいえ</asp:ListItem> 40 <asp:ListItem Value="未回答">未回答</asp:ListItem> 41 </asp:DropDownList> 42 </td> 43 </tr> 44 /・・・質問5つ分・・・/ 45 </table> 46 <br /> 47 <asp:Button ID="Button1" runat="server" CommandName="Update" Text="登録" /> 48 <asp:Button ID="Button2" runat="server" Text="キャンセル" CommandName="Cancel" /> 49 50 </EditItemTemplate>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/02 07:58
退会済みユーザー
2016/10/02 08:09
2016/10/02 08:15
2016/10/02 08:45
退会済みユーザー
2016/10/02 09:42
2016/10/02 10:07
退会済みユーザー
2016/10/02 10:21
2016/10/02 10:24
退会済みユーザー
2016/10/02 10:41
2016/10/02 10:58
退会済みユーザー
2016/10/03 01:39
2016/10/03 01:45
退会済みユーザー
2016/10/03 02:11
2016/10/03 02:12
2016/10/03 02:14
2016/10/03 03:00