【问题标题】:Inner Join sql query in C#C#中的内连接sql查询
【发布时间】:2016-07-11 02:02:49
【问题描述】:

我需要将此查询变成一个变量,但我很难创建它。我在 c# 中的查询结束时卡住了,这就是我所拥有的。我是个新手,只能自学,所以可能会很遥远。但这就是我目前所拥有的

var query = (from CON in CONTACT
             join ACT in ACCOUNT on ACT.ACCOUNTID equals CON.ACCOUNTID
             join TTC in TTCONTRACT on TTC.ACCOUNTID equals ACT.ACCOUNTID
             where CON.EMAIL != null && ACT.USERFIELD1 != null &&
                   int.TryParse(ACT.USERFIELD1) = 1 && CON.EMAIL like %@%

这是原始的 SQL 查询:

Select 
    con.FIRSTNAME, Con.LASTNAME, Con.EMAIL, 
    Act.USERFIELD1 'SerialNumber', ACT.ACCOUNT, 
    TTC.SOFTWAREMAINTENANCE, TTC.HARDWAREMAINTENANCE
from 
    CONTACT CON 
Inner join
    ACCOUNT ACT on ACT.ACCOUNTID = CON.ACCOUNTID 
Inner join
    TTCONTRACTS TTC on TTC.ACCOUNTID = ACT.ACCOUNTID 
Where 
    Con.EMAIL is not null 
    and Act.USERFIELD1 is not null 
    and ISNUMERIC(Act.USERFIELD1) = 1 
    and con.EMAIL like '%@%'

任何帮助将不胜感激 - 谢谢。

【问题讨论】:

    标签: c# sql inner-join


    【解决方案1】:

    试试这样的:

    var b = "Select con.FIRSTNAME, Con.LASTNAME, Con.EMAIL, Act.USERFIELD1 'SerialNumber', ACT.ACCOUNT, TTC.SOFTWAREMAINTENANCE, TTC.HARDWAREMAINTENANCE "+
    "from CONTACT CON Inner join ACCOUNT ACT on ACT.ACCOUNTID = CON.ACCOUNTID " +
    "Inner join TTCONTRACTS TTC on TTC.ACCOUNTID = ACT.ACCOUNTID " +
    "Where Con.EMAIL is not null and Act.USERFIELD1 is not null and " +
    "ISNUMERIC(Act.USERFIELD1) = 1 and con.EMAIL like '%@%'";
    

    【讨论】:

      【解决方案2】:

      关于c#中的like操作符等价于Contains方法。 在查询结束时,您应该指定需要选择的列

      var query = from CON in CONTACT     join ACT in ACCOUNT on  ACT.ACCOUNTID equals  CON.ACCOUNTID join TTC in  TTCONTRACT on TTC.ACCOUNTID  equals ACT.ACCOUNTID where  CON.EMAIL != null &&  ACT.USERFIELD1 != null &&  int.TryParse(ACT.USERFIELD1) = 1 &&  CON.EMAIL.Contains("@")
      Select {
      FIRSTNAME=con.FIRSTNAME,
      LASTNAME=Con.LASTNAME,
      EMAIL= Con.EMAIL, 
      SerialNumber= Act.USERFIELD1 ,
      
      ACCOUNT=ACT.ACCOUNT,
      SOFTWAREMAINTENANCE= TTC.SOFTWAREMAINTENANCE,
      HARDWAREMAINTENANCE= TTC.HARDWAREMAINTENANCE
      }
      

      【讨论】:

        【解决方案3】:
        var query = from CON in CONTACT
                     join ACT in ACCOUNT on ACT.ACCOUNTID equals CON.ACCOUNTID
                     join TTC in TTCONTRACT on TTC.ACCOUNTID equals ACT.ACCOUNTID
                     where CON.EMAIL != null 
                        && ACT.USERFIELD1 != null 
                        && System.Data.Objects.SqlClient.SqlFunctions.IsNumeric(ACT.USERFIELD1) != null
                        && CON.EMAIL.Containt("@")
        

        【讨论】:

          猜你喜欢
          • 2017-10-19
          • 2016-03-29
          • 2015-06-21
          • 2013-07-06
          • 1970-01-01
          • 1970-01-01
          • 2011-04-15
          • 2017-01-31
          • 2018-03-23
          相关资源
          最近更新 更多