3

以下の最初の MessageBox.Show() は、単に const 文字列 SQL_GET_VENDOR_ITEMS とまったく同じものを示しています。 、エラーのトークン、、] "

パラメータが追加された後に SQL の内容をスパイする方法はありますか。「SELECT ItemID, PackSize FROM VendorItems WHERE VendorID = 'TEST' AND VendorItemID = '852963'」のようになります。

関連するコードは次のとおりです。

    const string SQL_GET_VENDOR_ITEMS = "SELECT ItemID, PackSize " + 
        "FROM VendorItems " +
         "WHERE VendorID = @VendorID AND VendorItemID = @VendorItemID";

    string retVal = string.Empty;
    checkConnection();
    SqlCeCommand vendorCMD = objCon.CreateCommand();
    try 
    {
        vendorCMD.CommandText = SQL_GET_VENDOR_ITEMS;
        vendorCMD.Parameters.Add("@VendorID", SqlDbType.NVarChar, 10).Value = VendorID; 
        vendorCMD.Parameters.Add("@VendorItemID", SqlDbType.NVarChar, 19).Value = VendorItemID;

        MessageBox.Show(string.Format("Made it up to vendorCMD.ExecuteReader() with sql {0}", vendorCMD.CommandText));

. . .

        vendorReader.Close();
    } 
    catch (SqlCeException sqlceex)
    {
        MessageBox.Show(string.Format("SqlCeException in GetValsForVendorAndItem == {0}", sqlceex.Message));//TODO: Remove
    }
    finally 
    {
        vendorCMD.Dispose();
    }
    return retVal;

. . .

4

2 に答える 2

1

CE を使用しているため、オプションは限られていますが、データベースを覗く方法についていくつかの提案があります: Sql CE 用のプロファイラー

通常の SQL Server を使用している場合は、SQL プロファイラーの使用を検討してください。データベースに対して何が実行されているかを確認できます。

于 2013-04-03T21:22:35.673 に答える