2

Sql コマンドの構造

次のようにSqlコマンドを作成しました。

    string _InsertVehicleQuery = "INSERT INTO VSI_VehicleRecords(StockNumber,Status,Make,Model,Colour,Spefication) VALUES (@StockNumber, @Status, '@Make', '@Model', '@Colour', '@Specification');";

    SqlCommand _InsertVehicleCommand = new SqlCommand(_InsertVehicleQuery);
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@StockNumber", __StockNumber));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Status", __Status));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Make", Make));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Model", Model));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Colour", Colour));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Specification", Specification));

SQL コマンドの実行

    //Method call
    DataUtility.NonQuery(_InsertVehicleCommand);

    //Method structure
    public static void NonQuery(SqlCommand Command)
    {
        Command.Connection = __Connection;

        OpenConnection();
        Command.ExecuteNonQuery();
        CloseConnection();
    }

SQL クエリの実行または構築の中で、私が行っていないことが明らかに明らかなことはありますか? データベーステーブルで得られる結果:

VehicleRecordID StockNumber Status  Make    Model   Colour  Spefication
1                 -1            0   @Make   @Model  @Colour @Specification

解決策を事前に感謝します。また、提案も歓迎します!

4

4 に答える 4

4

パラメータ名はVALUES文字列リテラルとして解釈されるため、リスト内で一重引用符で囲むことはできません。

于 2012-08-26T17:33:13.237 に答える
2

パラメータを引用符で囲まないでください。

... (@StockNumber, @Status, @Make, @Model, @Colour, @Specification);"; 

それ以外の

... (@StockNumber, @Status, '@Make', '@Model', '@Colour', '@Specification');"; 

また、AddWithValueを使用できます

_InsertVehicleCommand.Parameters.AddWithValue("@Make", Make);  

それ以外の

_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Make", Make));  
于 2012-08-26T17:33:12.317 に答える
1

パラメータの前後に「@parameter」を付けないでください

string _InsertVehicleQuery = "INSERT INTO VSI_VehicleRecords(StockNumber,Status,Make,Model,Colour,Spefication) VALUES (@StockNumber, @Status, @Make, @Model, @Colour, @Specification);";

    SqlCommand _InsertVehicleCommand = new SqlCommand(_InsertVehicleQuery);
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@StockNumber", __StockNumber));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Status", __Status));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Make", Make));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Model", Model));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Colour", Colour));
    _InsertVehicleCommand.Parameters.Add(new SqlParameter("@Specification", Specification));
于 2012-08-26T17:34:12.703 に答える
0

パラメータ定義から@文字と引用符を削除します'

次に、各パラメータのValueプロパティを設定します

new SqlParameter( "StockNumber"、__StockNumber).Value = value;

于 2012-08-26T17:34:20.410 に答える