- - PR -
ACCESSに新規データが追加できない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-12-17 02:36
はじめまして、ほこと申します。
現在、簡単な顧客登録システムをつくっています。 Accessのオートナンバーの初期値にデータが無いときは、登録できるのですが、初期値にデータがある二回目以降は下記のようなエラーが出て登録できません。オートナンバーが機能していないと思いますが、自分なりに色々試行錯誤しでも解決できません。 よろしくおねがいします。 [エラーメッセージ] 列 'Customer_ID' は一意であるように制約されています。値 '1' は既に存在します。 [開発環境] ACCESS2000+VisualStudio.NET2000(VB.NET)でのASP.NETWebアプリケーション [概要] フォーム上のテキストボックスに名前を入れ、ボタンをクリックすればACCESS上にデータが追加されるという単純なものです。 [ACCESS] テーブル名:Customer_T フィールド名:Customer_ID(オートナンバー), Name(String) [SQL] SELECT Name, Customer_ID FROM Customer_T [ソース] Dim dr As DataRow = DataSet21.Tables("Customer_T").NewRow OleDbConnection1.Open() OleDbDataAdapter1.Fill(DataSet21) OleDbConnection1.Close() dr("Name") = TextBoxName.Text DataSet21.Tables("Customer_T").Rows.Add(dr) OleDbConnection1.Open() OleDbDataAdapter1.Update(DataSet21) OleDbDataAdapter1.Fill(DataSet21) OleDbConnection1.Close() DataBind() エラーはDataSet21.Tables("Customer_T").Rows.Add(dr)の部分でおきています。 Customer_IDのAutoIncrementはTrueです。 |
|
投稿日時: 2003-12-17 06:01
Fillの直後にFillSchema(スペル不安)を入れてみてください。
Fillはデータを、FillSchemaは構成を取得します。Fillでは「この列はintegerである」ということはわかりますが、「AutoNumberである」ことまではわからないのです。 追加 Table.NewRowは、FillSchemaの後で。こっちが正解かも。。。 さらに追加 だ〜〜!!ちゃんと見ろ>Jitta Fillの前にTable.NewRowしているので、「データが何もないからAutoNumberは1からだね」という状態です。だから、Fillの後にTable.NewRow [ メッセージ編集済み 編集者: Jitta 編集日時 2003-12-17 06:07 ] |
|
投稿日時: 2003-12-17 14:56
返信ありがとうございます。
早速、Fillの後にTable.NewRowを追加してみたところアクセスにデータが無事、書き込まれていました。 これで、先に進めることができます。本当にありがとうございました。 |
1