質問編集履歴

2

発生してる問題・エラーメッセージを追加しました

2016/12/09 10:33

投稿

mercredi
mercredi

スコア26

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,10 @@
3
3
  Asp.net(c#)でOracle databaseをコネクトしてWeb applicationを作っています。(プラットフォームはVisual Studio2015 Communityです)
4
4
 
5
5
  Sql developerでfunctionを作ったので、Web application上でユーザーにテキストボックス入力を促し、ボタンクリックでラベルにfunctionの結果表示をするC#の書き方を知りたいです。
6
+
7
+
8
+
9
+
6
10
 
7
11
 
8
12
 
@@ -15,6 +19,8 @@
15
19
  ###該当のソースコード
16
20
 
17
21
  **Sql (function)**
22
+
23
+ ```
18
24
 
19
25
  create or replace
20
26
 
@@ -66,13 +72,15 @@
66
72
 
67
73
  end;
68
74
 
69
-
75
+ ```
70
76
 
71
77
 
72
78
 
73
79
  --------------------------------
74
80
 
75
81
  **Asp.netのcode behind file(C#)(抜粋)**
82
+
83
+ ```
76
84
 
77
85
  protected void Button1_Click(object sender, EventArgs e)
78
86
 
@@ -113,3 +121,27 @@
113
121
  }
114
122
 
115
123
  }
124
+
125
+ ```
126
+
127
+ ###前提・実現したいこと
128
+
129
+ ここに質問したいことを詳細に書いてください
130
+
131
+ (例)PHP(CakePHP)で●●なシステムを作っています。
132
+
133
+ ■■な機能を実装中に以下のエラーメッセージが発生しました。
134
+
135
+
136
+
137
+ ###発生している問題・エラーメッセージ
138
+
139
+
140
+
141
+ ```
142
+
143
+ Webアプリケーションは表示されるのですが、P_recipeIdを入力してボタンをクリックすると、cmd.ExecuteNonQueryのところに「Oracle exception was unhandled by user 」が出ます。ちなみにWeb.configのConnectionString名は'recipeConnectionString'です。サーバーにはつながっています。あと、同じページに表示したGridviewの中のデータなどもきちんと表示されております。Functionは完成していて、Sql developer上でP_recipeIdをインプットするとr_accessはきちんとアップデートされます。
144
+
145
+
146
+
147
+ ```

1

Disconnected databaseではなく、データベースに接続した状態でFunctionを呼び出しましたが、「argument exception was unhandled by user」

2016/12/09 10:33

投稿

mercredi
mercredi

スコア26

test CHANGED
File without changes
test CHANGED
@@ -78,32 +78,38 @@
78
78
 
79
79
  {
80
80
 
81
- DataSet dataset= new DataSet("Access");
81
+
82
82
 
83
83
  using (OracleConnection conn = new OracleConnection("RecipeConnectionString"))
84
84
 
85
85
  {
86
86
 
87
- OracleCommand cmd = new OracleCommand("get_cAccess", conn);
88
87
 
89
88
 
89
+ using (OracleCommand cmd = new OracleCommand("get_cAccess", conn))
90
90
 
91
+ {
92
+
93
+ cmd.CommandType = CommandType.StoredProcedure;
94
+
91
- //ここでどのようにパラメーターを宣言すればいいのか、どのようにコントロールに関連付ければいいのかがわかりません
95
+ cmd.Parameters.Add("@p_recipeId", OracleDbType.Int32).Value = TextBox1.Text;
96
+
97
+ cmd.Parameters.Add("@access_r", OracleDbType.Char, 1).Direction = ParameterDirection.Output;
98
+
99
+ conn.Open();
100
+
101
+ cmd.ExecuteNonQuery();
102
+
103
+ conn.Close();
104
+
105
+ Label1.Text = "Your recipe's accesstype is private 'Y': public 'N' : " + cmd.Parameters["@access_r"].Value.ToString();
106
+
107
+ }
92
108
 
93
109
 
94
-
95
- cmd.CommandType = CommandType.StoredProcedure;
96
-
97
-
98
-
99
- OracleDataAdapter adapter = new OracleDataAdapter();
100
-
101
- adapter.SelectCommand = cmd;
102
-
103
-
104
-
105
- adapter.Fill(dataset);
106
110
 
107
111
  }
108
112
 
109
113
  }
114
+
115
+ }