1

NULL 列がほとんどないテーブルがあり、ストアド プロシージャを作成しました。

Web フォームのコントロールに値を入力するとき、すべてのフィールドに値を入力する必要があります。そうしないと、次のエラーが表示されます。

System.FormatException: 入力文字列が正しい形式ではありませんでした。

行で:

cmd.Parameters.Add(new SqlParameter("@Mob2", Convert.ToInt32(TextBox5.Text)));

私もやってみました

cmd.Parameters.Add(new SqlParameter("@Mob2", int.parse(TextBox5.Text)));

しかし、TextBox コントロールで NULL のままにしておくことはできません。

表では、データ型はnumeric(10,0)..私が言及したストアドプロシージャでnvarchar(10)、挿入中にこのように変換しました。

Convert(numeric(10,0),@Mob2)

しかし、それは変換されていないようです..

4

4 に答える 4

3

Convert.ToInt32(TextBox5.Text)空の文字列では常に失敗します。したがって、次のことを確認してください。

object val = string.IsNullOrEmpty(theString) ? (object)DBNull.Value
                                             : int.Parse(theString);
于 2012-08-11T08:18:09.223 に答える
1

携帯電話番号が必須フィールドであることを確認してください

mobile numberそうでない場合は、データベース テーブルのフィールドがチェックされていないことを確認してくださいNULL。この種のエラーが発生する方法です。

于 2012-08-11T10:17:21.520 に答える
1

TextBox5.Text の値を確認、テキストボックスの値に関連する問題

于 2012-08-11T08:09:50.740 に答える
0

null 文字列を整数に解析しようとしていますが、これはint.TryParseを使用するか、データベース フィールドに null 値を挿入する場合は、次の行に沿って何かを使用する必要があります。

cmd.Parameters.Add(new SqlParameter("@Mob2", 
!string.IsNullOrEmpty(TextBox5.Text.Trim()) ?int.parse(TextBox5.Text) 
: SqlInt32.Null));

TextBox5.Text == null または空の場合、Sql Int32 null 値をデータベースに挿入します

UPDATE TO ADDRESS USER COMMENTS 数値 (10,0) を使用している場合は、TextBox5 の値を 10 進数に変換し、ストアド プロシージャを varchar(10) から数値 (10,0) に変更して、テーブルの列のデータ型に一致させます。次のようなコードを使用できます。

SqlParameter numericParameter = new SqlParameter("NumericValue",SqlDbType.Decimal);
numericParameter.Precision = 10;
numericParameter.Scale = 0;
numericParameter.Value = !string.IsNullOrEmpty(TextBox5.Text.Trim()) ?decimal.parse(TextBox5.Text) 
: SqlInt32.Null);
于 2012-08-11T08:12:39.573 に答える