2012-03-02 299 views
0

をnvarchar型の値「1500」を変換するときにこれは私のエラーで失敗しました:値1,500以上変換はデータ型intに

Conversion failed when converting the nvarchar value '1,500' to data type int.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Conversion failed when converting the nvarchar value '1,500' to data type int.

','を持たなければならない量である私は、この','は私に私が思うにエラーを与えていると思います。私にこれを解決してください。

+1

はあなたがコードを追加します。を使用して。特にSQL部分。 – Chandu

答えて

3

SQLでnvarcharからintに変換するには、コンマを削除する必要があります。 '1,500'の代わりに'1500'を使用してください。さらに良いのは、1500のような文字列ではなく、実際のintで始めることです。

+0

しかし、私はコンマを使用して自分の値を表示する必要があります..カンマを削除せずにすべてのソリューション.. – sudheerbadboys

+4

あなたのディスプレイは、ソースデータを変更するのではなく、文字列フォーマットを使用して処理する必要があります。 – recursive

1

あなたは、例えば、NumberStyles.AllowThousandsフラグを使用してみてください、その後、変換することint.Parseを使用している場合:

int parsedInt= int.Parse(stringToParse, NumberStyles.AllowThousands); 
+0

価格をCAST( "+ a +" AS INT)とCAST( "+ b +" AS INT)の注文価格の間で値段が – sudheerbadboys

+0

のcuedetailsから選択した名前、image1、価格imの代わりに私のSQLクエリです1,500 ..ここでエラーが発生しました – sudheerbadboys

+0

私の知る限りでは、SQLはCAST(AS INT)の部分に1000単位の整数を扱うことができません。クエリに 'a'を渡す前にセパレータを削除してみませんか? –

1

ます。これは、何千もの数を解析することができます。この

int x = 0; 
string result = "1,500"; 
x = int.Parse(result, System.Globalization.NumberStyles.AllowThousands, System.Globalization.CultureInfo.InvariantCulture); 

ような何かを試すことができsepratorこれはあなたの文字列にあります。

表示目的にのみ値が必要な場合は、すでに文字列としてフォーマットされているので、intに変換する点はないと思います。

+0

CAST( "+ a +" AS INT)とCAST( "+ b +" AS)の間の価格が設定されたcueetailsから価格を選択します。 INT)注文の価格のdesc – sudheerbadboys

+0

私の代わりに私のSQLクエリは、1500を挿入..ここではエラー – sudheerbadboys

+0

なぜ上記のように変換した後にint値を渡さないのですか? – V4Vendetta

0

SQL Serverまたはデータベース側でこの問題を解決したい場合は、以下の解決策を試すことができます。 まず、値をお金にキャストしてからお金にキャストします。コードの下には正常に動作している:

select cast(cast('1,500' as money) as int) 

しかし、あなたは.NET Frameworkの側でこれを解決したい場合、あなたはあまりにも正常に動作して、次のコードを試すことができます。

string s = "1,500"; 
int i = Int32.Parse(s, NumberStyles.AllowThousands); 
関連する問題