2

SQL と呼ばれる文字列ビルダーを作成し、SQL.Replace を使用してその一部を値に置き換えるメソッドに取り組んでいます。

デバッグ中、値は本来あるべきものです。.WriteToDatabase(SQL.ToString()); に到達するまで 一部の場合、値は私が割り当てた番号に置き換えられているようです。

したがって、たとえば、.WriteToDatabase に到達するまで、文字列シフト = 朝のシフトがあります。文字列ビルダーとSQLでポジショニングを喜んで置き換えようとしました。コード

 public static void InsertPumaLadleControlProcessMonitoring(string ladleNo, string shift1, string LadleTemp, string Source, string Destination1, string Destination2, string Destination3, string Destination4, string pourTime, string RodsTibor, string Rodsr, string chunksMg, string DegasCycleTime, string Denisty, string OOT)
    {
        try
        {
            string operatorID = clsPublic.loggedInUserId;
            StringBuilder SQL = new StringBuilder(System.Configuration.ConfigurationManager.AppSettings.Get("InsertPumaLadleControlProcessMonitoring"));
            SQL = SQL.Replace("param1", ladleNo);
            SQL = SQL.Replace("param2", LadleTemp);
            SQL = SQL.Replace("param3", Source);
            SQL = SQL.Replace("param4", Destination1); 
            SQL = SQL.Replace("param5", Destination2);
            SQL = SQL.Replace("param6", Destination3);
            SQL = SQL.Replace("param7", Destination4);
            SQL = SQL.Replace("param8", pourTime);
            SQL = SQL.Replace("param9", Rods);
            SQL = SQL.Replace("param10", Rodsr);
            SQL = SQL.Replace("param11", chunksMg);
            SQL = SQL.Replace("param12", DegasCycleTime);
            SQL = SQL.Replace("param13", Denisty);
            SQL = SQL.Replace("param14", OOT);
            SQL = SQL.Replace("param15", shift1);

            clsPublic.sqlDB.WriteToDatabase(SQL.ToString());
        }
        catch (Exception e)
        {
            //clsPublic.appLog.Error("Cannot add Record");
            //throw new Exception("Cannot add record");
            MessageBox.Show("Cannot Add Record" + e);
        }
    }

なのでShift 1は=モーリングシフトですが、 .WriteToDatabase(SQL.ToString()); になると15に変化しているようです。誰でもアイデアはありますか?ありがとう

4

2 に答える 2

4

パラメーターを使用する必要があり、その名前をクエリの値に置き換えないでください。

于 2013-03-19T11:18:29.737 に答える
2

SQL.Replace("param1", ladleNo);などの"param1"すべて"param10"の出現を置き換えます。"param11"

そうは言っても、代わりにパラメーターを実際に使用する必要があります。

于 2013-03-19T11:19:27.457 に答える