2016-09-29 3 views
-4

こんにちは、私は自分のvb.netのアクセスデータベースのデータを更新する方法についてのコードを持っています。私のアプリインターフェースも同様です。エラーメッセージがあなたのテーブルの列の一つがAttachment型であることを示唆していることアクセスデータベースを更新するには

Private Sub Update_Record_Click(sender As Object, e As EventArgs) Handles Update_Record.Click 
    Me.Validate() 
    Me.EmployeeRegistrationBindingSource.EndEdit() 
    Me.EmployeeRegistrationTableAdapter.Update(Me.PayrollManagerDBDataSet) 
    TableAdapterManager.UpdateAll(Me.PayrollManagerDBDataSet) 
End Sub 

enter image description here

+1

こんにちは。エラーメッセージとは何ですか? – derloopkat

+0

System.Data.dllに 'System.Data.OleDb.OleDbException'型の未処理の例外が発生しました。 追加情報:UPDATEまたはDELETEクエリには、複数の値のフィールドを含めることはできません。これはエラー –

答えて

1

。残念ながら、ADO.NETはAttachment列のサポートを提供していません。あなたはちょっとした偽造物を使ってデータを取り出すことができますが、データを保存することは、私が判断できた限り、不可能です。ウェブを検索すると、DAOを使用するカラムAttachmentにデータを保存するためのいくつかのソリューションがあります。

+0

ですので、どうすればいいか教えてください –

+1

それは時々中立的に脳を置くようなものです。私は、ADO.NETは 'Attachment'カラムをサポートしていないと言いました。明らかに、あなたは 'Attachment'カラムを使うことができないか、ADO.NETを使うことはできません。 'Attachment'カラムを使い続けたいのであれば、すでに述べたようにDAOを使う必要があります。 – jmcilhinney

+0

@jmcilhinney:はい、どういう意味ですか? – onedaywhen

0

AccessデータベースエンジンのOLE DBプロバイダは、Access 2000をSQL Serverと連携して動作させるタスクとSQL ServerのようなJet(.mdb)を動作させるタスクを担当して以来、SQL Serverチームによって所有されています。彼らが失敗したため、おそらく市場/コミュニティが拒否された - その努力の結果、Accessチームはコードベースの「プライベートコピー」を取得し、独自の方法でAccessデータベースエンジンの.accdbバージョンを使用しました。したがって、.accdbに新しいデータ型を追加すると、ACEDAOに自由に追加できましたが、OLE DBプロバイダが所有していないため、OLE DBプロバイダを変更できませんでした(Accessコミュニティが拒否したためADO古典的な年前)。このため、OLE DBを使用してプログラムでAttachmentデータを変更することはできません。現実的な選択肢はACEDAOを使用することだけです。

関連する問題