- - PR -
ASP.NET ADO.NET DataRowでAccessメモ型へのデータの更新
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-10-04 18:52
マルチラインのテキストボックス(T_Note.Text)を作りそれにAccessのメモ型のデータ(note)を落とすことはできるのですが、今度はそれを変更したあとに、更新することができません、データの内容を更新しなければ、問題なく動作しますし
メモ型のフィールドをはずすと問題なく動作します。 エラーの内容は UPDATE ステートメントの構文エラーです。 Line 587: Dim MyComm As New OleDbCommandBuilder(MyAdapter) Line 588: MyAdapter.UpdateCommand = MyComm.GetUpdateCommand Line 589: MyAdapter.Update(MyDset, "テーブル名") ←エラー 以上のような内容です。 データセットには MyRow("note") = T_Note.Text として入れておりますが これではメモ型の場合データ型の指定等が必要で駄目なのでしょうか? ご教授下さい。 [ メッセージ編集済み 編集者: SASA 編集日時 2003-10-04 18:52 ] | ||||
|
投稿日時: 2003-10-05 07:47
メモ型のフィールドも正常に動作するようです。
以下のサンプルを参考にしてください。
| ||||
|
投稿日時: 2003-10-05 11:59
ご返答ありがとうございます!
サンプルを参考にし作り直しましたが、やはり無理でした。 しかしサンプルと私のコードの相違点がテーブル名とメモ型のフィールドの名前だけでしたので、フィールドの名前をnoteから notes や コメント と名前を付け替えてやると問題無く動作しました。 MyRow("note") = T_Note.Text ↓ MyRow("notes") = T_Note.Text SQLの抽出文の方法に問題があるのでしょうか? 後数字から始まるフィールド名も同じようなエラーがでたことが有ってフィールド名を変更するといけたことが有りましたが MyRow("1") = T_Note.Text ↓ MyRow("S1") = T_Note.Text このような場合ある条件のフィールド名は何かしらのコードが必要なのでしょうか? 表示するのは問題無いのですが、更新になるとどうしてもUPDATEでエラーが起きてしまいます たびたび質問して申し訳無いのですが、ご教授のほどよろしくお願いします。 | ||||
|
投稿日時: 2003-10-06 08:56
noteとかは、予約語とかになってるんじゃないですか? # 調べてませんので、あしからず。 あと、「1」なんて、数字一文字のフィールド名とか、普通は使わないんじゃないでしょうか? # 普通に1って書いたら、数値の1と区別がつかない可能性がありますよね? 多分エスケープする(フィールド名と解釈してもらう)ような構文があるようには思いますが(DBによってはないかもしれませんが、ちょっと分かりません)。 DBを変えたらたまたま独自の予約語と重なったとかなら仕方がない場合もあるとは思いますが、わざわざこんなフィールド名を使ってもトラブルを招くだけのように思います。 | ||||
|
投稿日時: 2003-10-06 14:23
返事ありがとうございます。
そうですよね・・おっしゃる通りです。フィールドの名前を変えれば良いだけなんですよねw エスケープする方法を少し探してみます。ありがとうございました! |
1