質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

5回答

5300閲覧

「実行不可能なメンバー''をメソッドのように使用することはできません。」と表示される

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/08/06 01:53

編集2018/08/06 01:54

C#

1public HttpContext baseContext; 2 3private List<Dictionary<string, string>> __区分; 4 public List<Dictionary<string, string>> _区分 5 { 6 get 7 { 8 if (__区分 == null) 9 { 10 var parameters = new Dictionary<string, string>(); 11 parameters.Add("種類", _LoginContext._種類); 12 var data = new List<Dictionary<string, string>>(); 13 using (var connection = new SqlConnection(_LoginContext._接続)) 14 { 15 connection.Open(); 16 using (var command = new SqlCommand()) 17 { 18 var method = MethodBase.GetCurrentMethod(); 19 var text = string.Format("/* [{0}.{1}] */", method.DeclaringType, method.Name) + @" 20 DECLARE @種類 INT; SET @種類 = <D:種類>; 21 select distinct 22 コード, 23 コード名 24 from 25 区分マスタ 26 order by 27 コード 28 "; 29 command.Connection = connection; 30 command.CommandText = hos.Utility.ReplaceSql(text, parameters); 31 command.CommandTimeout = int.Parse(ConfigurationManager.AppSettings["SqlCommandTimeout"]); 32 hos.Utility.SqlLog(Context, command); 33 using (var reader = command.ExecuteReader()) 34 { 35 while (reader.Read()) 36 { 37 var dictionary = new Dictionary<string, string>(); 38 for (var i = 0; i < reader.FieldCount; i++) 39 { 40 var name = reader.GetName(i); 41 var value = reader.GetValue(i).ToString(); 42 dictionary.Add(name, value); 43 } 44 data.Add(dictionary); 45 } 46 } 47 } 48 } 49 __区分 = data; 50 } 51 return __区分; 52 } 53 } 54 55 56 public void GetJson() 57 { 58 var data = _区分(baseContext); 59 var json = JsonConvert.SerializeObject(data); 60 baseContext.Response.ContentType = "application/json"; 61 baseContext.Response.Write(json); 62 }

public void GetJson()内の
[_区分]に赤線が入り、
「実行不可能なメンバー''をメソッドのように使用することはできません。」
と表示されます。

「private List<Dictionary<string, string>> __区分;
public List<Dictionary<string, string>> _区分」

「public List<Dictionary<string, string>> _区分()」
にして見て、その処理に合うように編集してみましたが、ダメでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

var data = _区分(baseContext); ⇒ var data = _区分; とすれば、とりあえずエラー(赤線)は消えると思います。理由はちゃんと考えてくださいね。

ただし、それで質問者さんがやりたいこと(DB の「区分マスタ」テーブルの「コード」と「コード名」を JSON 文字列にする?)ができるかどうかは分かりません。そもそも、必要な情報が DB から取得できているかどうかも分かりませんし。

そこが知りたいなら、ここに書いてあること以外は知り得ない第三者にどういう情報を提供すればよいかを考えて、質問を書いてください。

#個人的な趣味の問題かもしれませんが、変数名に日本語を使う、しかも _ 使って分かり難くしている、のは考えた方が良いと思うのですが。

投稿2018/08/06 02:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

__区分 はフィールドで _区分 はプロパティです。
どちらもメソッドではないので実行できません。どこに問題があるのでしょうか?

投稿2018/08/06 01:56

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/06 02:11

回答ありがとうございます。 今の状態は、「実行できないということに問題がない」ということで大丈夫でしょうか? では、 _区分 で取得したListのデータを、「public void GetJson()」で使用したい場合にはどうしたら良いのでしょうか?
退会済みユーザー

退会済みユーザー

2018/08/06 02:28

>「変数のように使える」というところからでいいんでしょうか? はい、その通りです。 URLありがとうございます。見てみます。
guest

0

ベストアンサー

質問内容が全く違う内容だったため、クローズさせていただきます。
再度、新規で質問します。
ありがとうございました。

投稿2018/08/15 03:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

色々と調べておりましたが、そもそも知りたいことが違っていました。
以前より、だいぶ質問内容が変更しております。

HTML

1(ファイル名「kubun.aspx」) 2<tbody> 3 <% 4 foreach (var _区 in _区分) 5 { 6 %> 7 <tr data-row-id="<%= _区["コード"] %>" class="modal-tr"> 8 <td><%= _区["コード"] %></td> 9 <td><%= _区["コード名"] %></td> 10 <td data-column-id="commands"></td> 11 </tr> 12 <% 13 } 14 %> 15</tbody>

JavaScript

1(ファイル名「kubun.js」) 2var grid = 3 $("#grid-command-buttons").bootgrid({ 4 rowCount: [-1, 10, 25, 50], 5 formatters: { 6 "commands": function (column, row) { 7 return "<button type=\"button\" class=\"btn btn-xs btn-default command-edit\" data-row-id=\"" + row.id + "\"><span>編集</span></button> " + 8 "<button type=\"button\" class=\"btn btn-xs btn-default command-delete\" data-row-id=\"" + row.id + "\"><span>削除</span></button>"; 9 } 10 } 11 }).on("loaded.rs.jquery.bootgrid", function () { 12 (中略) 13 }).end().find(".command-delete").on("click", function (e) { 14 if (!confirm("コード:" + $(this).data("row-id") + " のデータを削除しますか?")) { 15 return false; 16 } else { 17 $.post('kubun.aspx.cs?_区分', { id: $(this).data("row-id"), action: 'delete' }) 18 .done(function (data) { 19 $(this).parents('tr').remove(); 20 $("#grid-command-buttons").bootgrid('remove', [$(this).data("row-id")]); 21 }) 22 .fail(function () { //アラートでNGだす 23 alert("削除できませんでした。もう一度お試しください。"); 24 }) 25 $("#grid-command-buttons").bootgrid('reload'); 26 } 27 }); 28 });

元のC#のものも使用し、
JavaScriptの「$.post」の送り先(現状:'kubun.aspx.cs?_区分')
を知りたいです。
削除したいデータはC#のListです。

C#のファイル名は「kubun.aspx.cs」です。

投稿2018/08/15 03:03

編集2018/08/15 03:09
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/15 03:19

質問者さんは回答欄に書かないようにしてください。質問と回答がごっちゃになって何が何だか分からなくなります。 それ以前に、最初の質問とは全く違った話になっているので、このままこのスレッドで質問を続けるのは不適切です。このスレッドはクローズして(放置しないで必ずクローズしてください)、新たに別のスレッドを立てて質問してください。その際、新しいスレッドでは ASP.NET のタグを付ける、jQuery プラグインを使っているようですが、それが何かきちんと書くなど十分な情報を提供してください。
guest

0

パッと見ですが、_区分のgetter

C#

1 } 2 return __区分; 3 } 4 56 7 } 8 } 9 return __区分;

それとC# のコーディング規則 (C# プログラミング ガイド)
に目を通してください。

投稿2018/08/06 02:03

hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/06 02:13

回答ありがとうございます。 位置を移動すると、「get またはsetアクセサリーが必要です。」とエラーが出ました。 ガイドありがとうございます、読んでおきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問