如何将 C# 变量与 SQL 服务器查询一起使用

本文关键字:查询 服务器 一起 SQL 变量 | 更新日期: 2023-09-27 18:35:01

我必须在sql查询中使用"messageId"和"parrentId"c#变量,但是当我使用错误时,会引发错误:"'.2'附近的语法不正确。

如何在下面的查询中使用"messageId"和"parrentId"?

internal DataTable getAllMessages(string messageId, string parrentId)
{
    Query = "SELECT DISTINCT T1.* FROM mail_Reply T2 JOIN mail_Messages T1 ON (T2." 
          + messageId + "=T1." + messageId + " OR T2." + parrentId + "=T1." 
          + messageId + ")";
    return ExecuteDataTable();
}

提前谢谢。

如何将 C# 变量与 SQL 服务器查询一起使用

不要尝试构建这样的查询字符串 - 它会让你接触到一个称为SQL注入的漏洞 - 这是你现在需要离开并阅读的东西......

完成此操作后,请阅读命令对象 - SqlCommand 和朋友...

或者,考虑采用实体框架...

如果你的列名像整数值1,2,3,那么试试这个,

Query = "SELECT DISTINCT T1.* FROM mail_Reply T2 JOIN mail_Messages T1 ON (T2.[" 
          + messageId + "]=T1.[" + messageId + "] OR T2.[" + parrentId + "]=T1.[" 
          + messageId + "])";
    return ExecuteDataTable();

在字符串变量中单独使用string.format或构建query并将其分配给Query