@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

バイト列のインサート

1
投稿者投稿内容
ぴらおか
会議室デビュー日: 2003/08/26
投稿数: 15
投稿日時: 2005-07-27 22:29
vb.net ado.netを使用して、データセットを用いたDBアクセスをしていますが
以下の方法でSQLServerのBinary型項目にInsertできません・・

dim bytData(10) as byte

Adapter = New SqlDataAdapter("select * from t_顧客" con_FSeikyu)
Adapter.Fill(dSet, "t_顧客")
dtable = dset.Tables("t_顧客") 'データテーブルまで格納

Dim newRow As DataRow = dtable.NewRow()   ’新規行
newFormatRow(0)(0) = bytData '適当なバイトデータを入力
dtable.Rows.Add(newRow) '行追加

Dim updTable As New SqlCommandBuilder(Adapter)
Adapter.Update(dSet, "t_顧客")

エラーを拾うと、「'(の近くに無効な構文があります」とのこと。
CommandTextを拾っても、Insert文を発行しており、SQLプロファイラをみても
Insertをしようとはしているようです。
テーブルのChar項目には入れられるのですが・・
DBでバイナリ項目使用している方、前例ありましたらご教授願います。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-28 05:59
引用:

ぴらおかさんの書き込み (2005-07-27 22:29) より:

Dim newRow As DataRow = dtable.NewRow()   ’新規行
newFormatRow(0)(0) = bytData '適当なバイトデータを入力


 SQL のエラーなのか、実行時のエラーなのか、コンパイル時のエラーなのか、どの行でエラーになるのか、っていうところをはっきりさせて欲しいんだけど、この2行あたりがコンパイルエラーでしょ?

 転記時のタイプミスでしょうが、 newFormatRow という変数がありません。
 これが newRow だとして、これのインスタンスは2次元配列ではありません。
_________________
ぴらおか
会議室デビュー日: 2003/08/26
投稿数: 15
投稿日時: 2005-07-28 14:34
Jittaさん、返信ありがとうございます。
ご指摘の通りタイプミスだらけですが
Adapter.Update(dSet, "t_顧客") での実行時エラーでした。
そして、自己解決しました。
登録対象のテーブルの項目に'('カッコを使用していたため
それが悪さをしていたようです。
全角カッコであればよいだろ、と思って使用していたのですが・・
やはり特殊文字はいけませんね。

ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-29 05:18
 くぅ〜〜!後で読んでいて、間違いに気づいた。
引用:

 これが newRow だとして、これのインスタンスは2次元配列ではありません。


訂正
 これが newRow だとして、これの第1列は配列ではありません。


 解決できて良かったですね。
 私は投稿後のバグが・・・本日1点目。。。
1

スキルアップ/キャリアアップ(JOB@IT)