質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

4038閲覧

VB.NET バイナリデータをSQLServerへの読み書きの方法

matsutake

総合スコア34

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/12/06 06:31

お世話になります。
現在、Visual Studio 2008とSQLserver 2005を使用し、
Windowsアプリケーションを作成しております。
その中でInkCanvas に描いたストロークの内容をデータベースに保存したいと思っているところで困っております。
リンク内容

データベースに保存する直前までは問題ないかと思っているのですが
データベースに書き込む際の方法がわかりません。
以下のSQL文の内容もおかしいのはわかっているのですが、
どう直せばいいのかわからず、そのまま載せさせて頂いております。
宜しくお願い致します。

VB.NET

1 Dim stroke_data() As Byte 2 Dim ms As IO.MemoryStream = New IO.MemoryStream() 3 InkCanvas1.Strokes.Save(ms) 4 ReDim stroke_data(ms.Length) 5 stroke_data = ms.ToArray() 6 7 Dim strSQL As String 8 strSQL = "" 9 strSQL = "UPDATE TestTable SET TestField = " & stroke_data() & vbCrLf 10 strSQL &= " WHERE TestFieldSerial = 90" & vbCrLf 11

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

stroke_data = ms.ToArray() でバイト列の取得までは問題なくできていると理解していますが、そうであれば、以下の記事を参考にやりたいことができると思います。

SQL ServerとADO.NETを用いたBLOB(バイナリラージオブジェクト)の処理方法
https://codezine.jp/article/detail/3026

記事の内容に不明点があれば、どこが分からないか質問してください。また、記事に書いてあることが質問者さんのやりたいことと違う場合は、どのように違うのか書いてください。

投稿2019/12/06 08:18

編集2019/12/06 08:45
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsutake

2019/12/06 10:00

ご回答、ありがとうございます。 一度、記事を拝見させて頂き、改めてご報告させて頂きます。
退会済みユーザー

退会済みユーザー

2019/12/11 00:32

進捗は状況はいかがですか? 不明点があれば質問してください。長期の放置はマナーとして NG ですよ。
matsutake

2020/01/23 01:53

お世話になっております。 回答が遅くなり、大変申し訳ございませんでした。 また、ご指摘ありがとうございました。
guest

0

ブラウザーからアップロードされたファイルを直接 SQL Server に保存しているときこんなふうにやっています。
コードを切り貼りしているので抜けていたらスミマセン。ストアドプロシージャの中身は、
いたって普通のINSERT文です。ストアドの引数「@FileData」をバイナリーフィールドに突っ込んでいます。

ご参考になれば ...

VB.NET

1Dim UploadFile As HttpPostedFile = Request.Files(0) 2Dim UpContentLength As Integer = UploadFile.ContentLength 3Dim aryData(UpContentLength - 1) As Byte 4 5UploadFile.InputStream.Read(aryData, 0, UpContentLength) 6 7 8Using ts As New TransactionScope() 9 Using cn As New SqlConnection(Connection.ConnectionString) 10 Using sqlCmd As New SqlCommand("ストアドプロシージャの名前", cn) 11 cn.Open() 12 sqlCmd.CommandType = CommandType.StoredProcedure 13 With sqlCmd.Parameters 14 .Add("@FileData", SqlDbType.VarBinary, aryData.Length).Value = aryData 15 End With 16 sqlCmd.ExecuteNonQuery() 17 ts.Complete() 18 End Using 19 End Using 20End Using

投稿2019/12/25 23:44

ASP.NET

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsutake

2020/01/25 00:48

ご連絡が遅くなり申し訳ございませんでした。 ご回答頂き、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問