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

SQL Server に送信されるクエリを特定します。

  1. コードから (クエリ文字列)。
  2. SQL Server プロファイラーを使用します ([Microsoft SQL Server Management Studio] > [ツール] > [SQL Server プロファイラー] から開きます)。

コードからのクエリと管理スタジオのクエリには何か違うものがあるはずです。

于 2013-01-04T10:42:37.330 に答える
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 に答える