C# C语言中的内部连接sql查询#

C# C语言中的内部连接sql查询#,c#,sql,inner-join,C#,Sql,Inner Join,我需要把这个查询变成一个变量,但是我很难创建它。我在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

我需要把这个查询变成一个变量,但是我很难创建它。我在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 '%@%'

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

尝试以下方式:

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 '%@%'";

关于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
}
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("@")