2

C# Web アプリで入力フォームを作成しています。問題なく送信できますが、System.Data.SqlClient.SqlException (0x80131904): String or binary data would be truncatedエラーが発生します。長さの問題は知っていますが、すべてを再確認しましたが、ここでこれを理解できないようです.

{
    // Open Connection
    thisConnection.Open();

    // Create INSERT statement with named parameters
    nonqueryCommand.CommandText = "INSERT  INTO InventoryInput (Date, Item, Qty, WStatus) VALUES (@Date, @Qty, @Item, @WStatus)";


    // Add Parameters to Command Parameters collection
    nonqueryCommand.Parameters.Add("@Date", System.Data.SqlDbType.DateTime);
    nonqueryCommand.Parameters.Add("@Item", System.Data.SqlDbType.VarChar, 255);
    nonqueryCommand.Parameters.Add("@QTY", System.Data.SqlDbType.NChar, 10);
    nonqueryCommand.Parameters.Add("@WStatus", System.Data.SqlDbType.VarChar, 50);


    nonqueryCommand.Parameters["@Date"].Value = TextBox1.Text;
    nonqueryCommand.Parameters["@Item"].Value = DropDownList1.Text;
    nonqueryCommand.Parameters["@QTY"].Value = TextBox2.Text;
    nonqueryCommand.Parameters["@WStatus"].Value = DropDownList3.Text;
    nonqueryCommand.ExecuteNonQuery();

}

ここに画像の説明を入力

4

2 に答える 2

7

2 つの列を混同しました。

(Date,  Item, Qty,   WStatus) VALUES
(@Date, @Qty, @Item, @WStatus)

あなたはあなた@QtyItem列に挿入しようとしています(大丈夫です)、そして列に(おそらく間違っています)@ItemQty

また、一部のデータ型がまだ疑わしいように見えるというコメントにも同意します。たとえば、数値以外の量です。

于 2012-08-20T12:51:12.833 に答える
2

入力が長すぎないことを確認してくださいSubstring():

nonqueryCommand.Parameters["@Date"].Value = TextBox1.Text;
nonqueryCommand.Parameters["@Item"].Value = DropDownList1.Text.Substring(0, 255);
nonqueryCommand.Parameters["@QTY"].Value = TextBox2.Text.Substring(0, 10);
nonqueryCommand.Parameters["@WStatus"].Value = DropDownList3.Text.Substring(0, 50);
于 2012-08-20T12:46:40.777 に答える