2010-12-06 19 views
0

すべてのnvarchar型のデータベースの複数の列にデータを入力するのに問題があります。私は次のようになります:nvarcharの例外 - あるデータ型から別のデータ型への変換中にデータが切り捨てられました

あるデータタイプから別のデータタイプへの変換中にデータが切り捨てられました。 (既知の場合)関数の名前

DBConn.Open(); 

cmd = new SqlCeCommand("INSERT INTO [Employee Table] VALUES ('"+ social + "','" + 
     first + "','" + last + "','" + mid + "','" + address + "','" + phone + "'," 
      + "'Employee'" + ",'" + city + "','" + state + "','" + zip + "','" + email + "','" + userName + "')", DBConn); 
cmd.ExecuteNonQuery(); 

切り捨て/エラーの変換を回避する方法上の任意の提案?

+1

パラメータを使用する必要があります。 – SLaks

+2

これを行わないでください。パラメータ化されたクエリを使用します。お願いします。それ以外はSQLインジェクションを求めているだけです。 – Heinzi

+1

クラスのプレゼンテーションを行う場合は、SQLインジェクションがもっと重要です。 _Please_ SQLを連結する別の世代の開発者を訓練しないでください。 – SLaks

答えて

4

は理由が列の長さが非常に短いことであるパラメータ

SqlParameter param = new SqlParameter("Field", SqlDbType.NVarChar)  
Param.Value = Field; 
6

NVARCHARは文字列を保持するのに十分ではありません。

2

を使用してみてください。したがって、値は表の列の最大幅よりも長くなります。

関連する問題