2016-06-23 21 views
-1

SQLをLINQクエリに変換しようとしていますが、LINQクエリを使用してdata2にデータを取得しようとしましたが、ドロップダウン2カレンダーがあります。私はdata2でデータを取得しようとします英国では3つのPSBと7つのMVがあります。データベース内アラートボックス内の地域別データ

SELECT distinct count(VName) as data, 
    tabvv.VName, 
    tabrv.ID, 
    FFID, 
    oname, 
    regno, 
    FROM tabrv 
    join tabre on tabre .RegionID= tabrv.RegionID 
    join tabvv on tabvv.ID=tabrv.ID 
    WHERE Region = 'UK' AND 
    StartDate >= '2014-02-01 00:00:00.000' AND 
    EndDate <= '2014-02-28 23:59:59.000' 
    group by 
    tabvv.VName, 
    tabrv.ID, 
    FFID, 
    oname, 
    regno 

データ:VNAMEがある場合には上記のデータで

data  VName ID FFID oname regno 
    1  PSB  22 106  ASB  AY-50 
    1  MV  23 102  ASD  AS-18 
    1    24 104  ASFi TM-82 
    1    25 1072 AED  AU-06 
    1  PSB  26 104  ADF AZ-23  
    1  MV  27 10  AEF UB-21  
    1    28 1024 SFS AE-49  
    1    29 101  QWER AE-53  
    1    30 109  QWE AV-63  
    1  MV  31 103 VVBV  AL-94 
    1  MV  32 125 QWEE AY-36  
    1    33 1292 BGGH AWF-98 
    1    34 1038 WEQWE WN-81 
    1  MV  35 105 QWEWQ AQ-98 
    1    36 109 QWE  AWT-88 
    1    37 01  UIO  AX-84  
    1    38 14  GH  AK-18  
    1  MV  39 09  GHJ  XL-13  
    1    40 1025 HFGHL XW-78 
    1  MV  41 120 HJK  AXY-4  
    1  PSB  42 100 DG  A-18 

は、その後1を書き込むが、上記のデータに何VNAMEは、いくつかの列にありませんが、1、私はこれを修正どのように言及されています。 (私はLINQに変換するSQLクエリ)警告ボックスで

とデータ:私は機能の上に構築するとき

[WebMethod] 
public static string GetVo(int ID) 
{ 
string data2 = "["; 
    try 
    { 
    string fdate = fromdate.Value.Trim().Split('T')[0]; 
    string tdate = todate.Value.Trim().Split('T')[0]; 
    T1 DB = new T1(); 
    var rea = (from rv in DB.tabrv 
    join Reg in DB.tabre on rv.RegionID equals Reg.RegionID 
    join vv in DB.tabvv on rv.ID equals vv.ID 
    where Reg.Region=ID 
    && !(vv.VName == "") 
    && Reg.StartDate == Convert.ToDateTime(fromdate) &&  
    Convert.ToDateTime(Reg.EndDate) 
    group vv by vv.VName into g 
    select new 
    { 
    Name = g.Key, 
    cnt = g.Select(t => t.Name).Count() 
    }).ToList(); 
    data2 += rea.ToList().Select(x => "['" + x.Name + "'," + x.cnt + "]") 
    .Aggregate((a, b) => a + "," + b); 
    data2 += "]"; 
    } 
    catch (Exception ex) 
    { 
    throw new Exception(); 
    System.Web.HttpContext currentContext = System.Web.HttpContext.Current; 
    currentContext.Response.Write("<script>alert('" + 
    currentContext.Server.HtmlEncode(ex.ToString()) + "')</script>"); 
    } 
    return data2; 
    } 
    } 

が、これはエラー

エラーを示して6オペレータに適用することはできません「&が&」 'int'および 'bool'型のオペランド

エラー5非スタティックフィールド、メソッド、またはプロパティ 'abc.WebForm1.todate'にオブジェクト参照が必要です

エラー4非静的フィールド、メソッド、またはプロパティ 'abc.WebForm1.fromdate'にオブジェクト参照が必要です

エラー7非静的フィールド、メソッド、またはプロパティにオブジェクト参照が必要です'abc.WebForm1.fromdate'

コード:

<asp:DropDownList ID="regiondrop" runat="server" AutoPostBack="True" 
onselectedindexchanged="regiondrop_SelectedIndexChanged"> 
</asp:DropDownList> 
<asp:Label ID="Label1" runat="server" Text="From Date"></asp:Label> 
<input ID="fromdate" value="mm/dd/yyyy" runat="server" ClientIDMode="static" /> 
<asp:Label ID="Label2" runat="server" Text="To Date"></asp:Label> 
<input ID="todate" value="mm/dd/yyyy" runat="server" ClientIDMode="static" /> 
<input type="button" ID="search_data" runat="server" class="sear_btn" value="Search Data" OnServerClick="search_data_Click" /> 

そして、私はこのようにDATA2のデータにしたい:

[[PSB,'3'],[MV,'7']] 

3私はMVのために、同じSQLクエリを実行すると3 PSBがデータに存在するため、D 7は、7

今私は、ドロップダウン私はカレンダーにアクセスする方法この

<script type="text/javascript"> 
$('#search_data').click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "WebForm1.aspx/GetVo", 
     data: JSON.stringify({ ID: $().val('#regiondrop') }), 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     async: true, 
     cache: false, 
     success: function (result) { 

      alert(result.d); 
      alert('u'); 
      //start 
      strArray = result.d; 
      var myarray = eval(strArray); 


      $('#container').highcharts({ 
       chart: { 
        type: 'pie', 
        options3d: { 
         enabled: true, 
         alpha: 45 
        } 
       }, 
       title: { 
        text: 'Contents of Highsoft\'s weekly fruit delivery' 
       }, 
       subtitle: { 
        text: '3D donut in Highcharts' 
       }, 
       plotOptions: { 
        pie: { 
         innerSize: 100, 
         depth: 45 
        } 
       }, 
       series: [{ 
        name: 'Delivered amount', 
        data: myarray 
       }] 
      }); 

      //end 
     }, 
     error: function (error) { 
      alert(error); 
     } 

    }); 
}); 

// }); 

    </script> 

のようにアクセスしていますか?

答えて

0

1. )あなたの最初のエラー(エラー6オペレータ「& &」タイプ「のint」と「ブール」)のオペランドに適用することはできません。 Where句には次のものがあります。おそらくあなたはSTARTDATEを扱うようになり

Convert.ToDateTime(Reg.EndDate) == Convert.ToDateTime(todate)

のようなものであることを意味する

Convert.ToDateTime(Reg.EndDate)

。 Convert.ToDateTimeは単独でtrue/false値ではないDateTimeを返します。したがって、エラーです。

2.)他の3つのエラーについては、コード内の名前で標準入力タグにアクセスできないため、すべての入力タグをasp:TextBoxオブジェクトに変更する必要があります。だから代わりに;

<input ID="fromdate" value="mm/dd/yyyy" runat="server" ClientIDMode="static" />

あなたが持っているでしょう。 TextBoxのID = "FROMDATE" タイプ= "日時ローカル" テキスト:私はこの

<asp:TextBox ID="fromdate" Text="mm/dd/yyyy" runat="server"/>

代替は

Request.Form["fromdate"]

+0

[OK]を使用して値にアクセスするだろう= "dd/mm/yyyy" runat = "server" />次に、DateTime fdate = Convert.ToDateTime()を呼び出すと、Convert.ToDateTime()のfromdate IDをコールしようとするとリストにfromdateはありません。 。 –

+0

また、私はこのRequest.Form ["fromdate"]を書く;エラーを示します。エラー非静的フィールド、メソッド、またはプロパティ 'System.Web.UI.Page.Request.get'にオブジェクト参照が必要です。 –