2016-06-01 6 views
0

私が達成しようとしているのは、テーブルへの各エントリに固有の識別子を生成して挿入することです。System.Data.SqlClientが私のステートメントについて文句を言うのはなぜですか?

enter image description here

私はその結果が(予想されたように、データベースに直接INSERTクエリを実行するとtherforeユーザIDがautomaticalyたびに新たに生成され、インクリメントされ、ユーザーID列にデフォルト値(newsequentialid())を追加しました値が加算されます)。

しかしこれは、私は次のエラーを提供し、私のASP.NETのWebサービスを通じてクエリを実行する場合ではありません。

System.Data.SqlClient.SqlException: Operand type clash: int is incompatible with uniqueidentifier

私はエラーがデータ型の衝突を表示していることを理解し、私はないです私のC#コード内からそのcoloumnを移植しようとするのではなく、automaticalyに追加する必要がありますか? (なし?)

DataClassesDataContext dbContext = new DataClassesDataContext(); 
AddingNewUsers.UserName = UserName; 
AddingNewUsers.UserPass = UserPass; 
AddingNewUsers.DOB = Convert.ToDateTime(DOB); 
AddingNewUsers.EmailAddress = Email; 
AddingNewUsers.JoiningDate = DateTime.Today; 
AddingNewUsers.Status = "Active"; 
AddingNewUsers.WalletAmount = 0;  
dbContext.UserTables.InsertOnSubmit(AddingNewUsers); 
dbContext.SubmitChanges(); 
+5

一意の識別子は、UserIdをInt型に変更する必要があるGUIDを期待します。Int型にデータ型を変更します。また、C#コードでそのフィールドを設定する予定がある場合、その列は自動インクリメント列でなければなりません。 – MethodMan

+1

SQL Server Profilerを使用して、アプリケーションからデータベースサーバーに送信されているステートメントを正確に表示します。場合によっては、問題の性質と原因についていくつかの洞察を得るのに役立ちます。 –

+1

@MethodMan:これは正解としてこれを正解としてください。 –

答えて

4

uniqueidentifierGUIDはあなたがC#のコードを経由してそのフィールドを移入することを計画している場合、その列はauto increment column

すべきではないにもintにデータ型を変更するのIntするユーザーIDを変更する必要があります期待してい
+0

私はC#からデータを取り込みたくないので、列をIdentity列に設定し、IDの増分を有効にしましたが、今度はIDENTITY_INSERTをオンにする必要があります。それは理想的ではないすべての挿入ステートメントで、任意の提案ですか? – Aboudi

+0

https://msdn.microsoft.com/en-us/library/ms186775.aspx私はそれを使用することができるはずです各エントリ(UserID) – Aboudi

+1

の一意の識別子解決しました、私は自分の.dbmlクラスに行き、列プロパティをAuto Generated Value = Trueに変更します。 – Aboudi

関連する問題