0

我有一个 sql 查询

Select Itemcode from StocktransferlocationDetails 
where Projectname='" +  projectname_stockout + "'  and 
       Stocktransferlocation !='" + location_stockout + "' and Status='Open'

在 C# 中使用时无法正常工作,但在 SQl 中正确工作我在 sql 中使用了以下查询

  Select Itemcode from StocktransferlocationDetails 
  where Projectname='iupl'  and Stocktransferlocation !='Chennai-Bangalore' 
        and Status='Open'

这个怎么做

4

3 回答 3

1

它必须是带引号的字符串,您应该使用 SqlParameter 来防止 Sql 注入。

var sql = "Select Itemcode 
              from StocktransferlocationDetails 
              where Projectname = @ProjectName  
              and Stocktransferlocation <> @Stocktransferlocation 
              and Status='Open'";

var param1 = new SqlParameter("@ProjectName", projectname_stockout);
var param2 = new SqlParameter("@Stocktransferlocation", location_stockout);

这只是解决方案的一部分,您应该使用 SqlCommand 对象来使用参数填充查询。

于 2013-01-04T10:17:56.647 回答
0

在 C# 中你应该这样使用:-

string query="Select Itemcode from StocktransferlocationDetails"+ 
+" where Projectname=" +  projectname_stockout + "  and "+
      +" Stocktransferlocation !=" + location_stockout + " and Status='open'";
于 2013-01-04T10:21:46.400 回答
0

找出发送到 SQL Server 的查询。

  1. 来自代码(您的查询字符串)。
  2. 使用 SQL Server Profiler(从 Microsoft SQL Server Management Studio > 工具 > SQL Server Profiler 打开)。

来自代码的查询和管理工作室中的查询肯定有所不同。

于 2013-01-04T10:42:37.330 回答