2016-06-23 2 views
-1

SQL을 LINQ 쿼리로 변환하려고합니다. LINQ 쿼리를 통해 데이터 2의 데이터를 가져 오려고 시도합니다. 드롭 다운 2 개의 캘린더가 있습니다. 드롭 다운 2 개의 캘린더가 있습니다. 날짜를 입력하면 데이터 2에서 데이터를 가져 오려고합니다. 영국에서는 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 

데이터 :

위의 데이터에서
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이 있지만, 위의 데이터가 일부 열에서 더 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" /> 

그리고이 같은 데이터 2 데이터에 원하는 :

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

3 나는 SQL 쿼리가 MV에 대한 동일합니다 실행할 때 데이터 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.) 다른 세 가지 오류에 대해서는 표준 입력 태그가 코드에서 이름으로 액세스 할 수 없으므로 모든 입력 태그를 asp : TextBox 객체로 변경해야한다고 생각합니다.그래서 대신;

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

당신이 가진 것;

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

난이

Request.Form["fromdate"]

+0

확인하여 값에 액세스하는 것 : 글 상자 ID = "FROMDATE"TYPE = "날짜 로컬"텍스트 = "dd/mm/yyyy"runat = "server"/> 그런 다음 DateTime fdate = Convert.ToDateTime()을 호출 할 때 Convert.ToDateTime()에서 fromdate ID를 호출하려고하면 목록에 fromdate가 없습니다. . –

+0

또한 내가이 Request.Form [ "fromdate"]을 쓸 때; 오류를 표시합니다. 오류 비 정적 필드, 메서드 또는 속성 'System.Web.UI.Page.Request.get'에 대한 개체 참조가 필요합니다. –

관련 문제