やりたいこと:
画面に入力された数値をLINQに反映したいです。
javascriptとHTMLでWEBサービスを作成し
C#でAPIを作成しております。
端的に言うと画面でカラム名や数値を入力するとその内容のデータを
データベースから取得してくるサービスを学習の為作成しております。
日付をもとにデータを取得する場合3/1~3/10までと言った日付~日付のデータ取得はできるのですが
3/1から昇順で5件のデータを取得と言ったデータ取得の範囲を件数で指定する場合のやり方がわからなく困っています。
C#
1var retData = list.Select(ex => new { ex.Date}).Take(1).ToList().OrderBy(ex => ex.Date);
上記のコードでtakeに数値を入れればその件数分データを取得できる事は理解しています。
どうすれば画面の内容をLINQに反映して欲しい件数分取得することが出来るのでしょうか。
カラム名の反映はAPIが受け取ったURLで取得するカラム名を判断するようにしています。
選択したカラム名をURLに追加していってAPIに渡しています。
取得するテーブル名は固定でカラムのみを変化させます。
一度全てのデータを取得するのではなく、負担を軽くする為指定した件数分しか取得できないようにしたいです。
詳しい方お力をお貸しください。
ー追記ー
HTML(Javascript)で入力したデータをURLに追加していき、APIに渡します。
APIはURLを元にデータベースに接続し指定のデータを習得しHTML(Javascript)に渡し、画面に表示させます。
Javascript
1var url = this.getURL + "?"; 2 3 // ラインを追加 4 let dateselect = <HTMLSelectElement>document.getElementById("date_select"); 5 url += "Date=" + dateselect.value;
上記のコードをjavascriptで作成しておりdate_selectの部分に画面で選択したカラム名が入ります。
その為カラム名が完全一致していないとデータを習得することができなく、3/1から5件としたい場合
3/1のデータを5件取ろうとします。その為3/1に5件のデータがなければ存在するだけのデータを取ります。
そのようにではなく、3/1に3件、3/2に1件、3/3に4件のデータがあるなら全部から昇順で5件データを取りたいのです。
テーブル名が固定の為上記のLINQ式でカラム名が変更できデータも取得できますが
カラム名が一致しているデータしか取得できないので件数の指定をどのように行うか教えて頂きたいです
環境:
windows 10
visual studio2016
SQL Server
回答2件
あなたの回答
tips
プレビュー