2012-02-14 20 views
1

私は、ストアドプロシージャでこのクエリをやっているやったときに:従業員のID(int)を返すことになっているSELECT TOP 1 [Employe] FROM Transactions WHERE [Employe][email protected] AND [email protected]エラーSQL Serverクエリ

を。私のアプリケーション(ASP.NET C#)では、DataReaderを使用して、次の行を読み込んだときにこのエラーが発生します。 * varchar値*をデータ型intに変換すると変換に失敗しました。 *

タイプ*とは何ですか?そして私は何かを変換しようとしていない。

+0

私はより多くのコードをご覧になりたいです。プロシージャのコードと、DataReaderの実行方法。 「従業員」の綴りは正しいですか? – Dan

+0

通常、このエラーは、使用されているvarchar値に含まれるデータを示します。この場合、どこかに*が存在すると考えます。この問題を適切に解決するために、コードとデータベースの内容が必要になる場合があります。 – David

答えて

0

あなたはvarcharEmployeフィールドとして@Nameパラメータを渡しているほとんどの場合は、intフィールドです。

Employeの結果値をintデータ型に割り当てると、このエラーが発生する可能性があります。

Transactionsテーブル定義とストアドプロシージャコードを投稿して、さらにトラブルシューティングを行ってください。

0

あなたの@NameパラメータはVARCHARと指定されていると思われますが、テーブルのEmployeフィールドはINTフィールドです。

これを試してください:あなたは、私は推測しているEmploye列をsleectingているよう

SELECT TOP 1 [Employe] FROM Transactions WHERE CAST([Employe] AS VARCHAR)[email protected] AND [email protected] 
+1

すべてのあなたの答えをありがとう! 私のエラーの内容を知りました。ストアドプロシージャのvarcharとして@Nameパラメータを宣言し、int C#コードを入力しました。 N00bエラー、私は知っている! – Soader03

3

はルックスはvarcharです。私はあなたがID列を選択すると仮定しています。

SELECT TOP 1 [ID] FROM Transactions WHERE [Employe][email protected] AND [email protected] 
+0

名前に '*'が含まれているように見えるので、彼はWHERE [Employe] LIKE Nameとnot = Nameをやりたいかもしれません。 – David