C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: byteをDBに格納


(過去ログ 107 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■63918 / inTopicNo.1)  byteをDBに格納
  
□投稿者/ ひかり (1回)-(2012/10/29(Mon) 11:40:29)

分類:[C#] 

sqlserver 2008
framework3.5 SP1
C#

すみません。
C#初心者です。上の情報で十分ですか?


いま、データをDBに格納したく奮闘しております。

まず、格納したいものは、以下のような16進数のデータです。
「1E0015・・・」
いまはbool配列に{0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1・・・}のデータを8個ずつ
int配列に{30, 0, 5,・・・}と変換して
byte配列に{1E,0,15・・・}と変換しています。
bool配列からbyte配列に変換する方法はありますでしょうか?

また、byte配列のDBへの格納方法も合わせてお教えいただけると助かります。
よろしくおねがいします。
引用返信 編集キー/
■63924 / inTopicNo.2)  Re[1]: byteをDBに格納
□投稿者/ 魔界の仮面弁士 (75回)-(2012/10/29(Mon) 15:39:24)
No63918 (ひかり さん) に返信
> いま、データをDBに格納したく奮闘しております。
> まず、格納したいものは、以下のような16進数のデータです。
> 「1E0015・・・」

バイナリリテラルを含んだ SQL を実行するとか。

-- CREATE TABLE TBL ( ID INT IDENTITY PRIMARY KEY, BIN VARBINARY(MAX) )

INSERT INTO TBL (BIN) VALUES (0x1E0015)


> bool配列からbyte配列に変換する方法はありますでしょうか?
こちらは、泥臭い変換方法しか思いつきませんでした。
引用返信 編集キー/
■63925 / inTopicNo.3)  Re[2]: byteをDBに格納
□投稿者/ pang2 (3回)-(2012/10/29(Mon) 18:43:09)
> bool配列からbyte配列に変換する方法はありますでしょうか?

System.Collections.BitArrayクラスのコンストラクタにbool配列を渡し、
CopyToメソッドでbyte配列にコピーする。

> また、byte配列のDBへの格納方法も合わせてお教えいただけると助かります

そもそも、どういった方法でSQLを発行しているのか?
SqlCommand.ExecuteNonQueryを使うのであれば、パラメータにbyte配列を渡せばよい。
http://www.atmarkit.co.jp/fdotnet/dotnettips/253aspdbbinary/aspdbbinary.html
引用返信 編集キー/
■63926 / inTopicNo.4)  Re[1]: byteをDBに格納
□投稿者/ Jitta (10回)-(2012/10/30(Tue) 06:35:12)
Jitta さんの Web サイト
No63918 (ひかり さん) に返信
 何がしたいのでしょう?以下、この「質問文」を読んだときに思ったこと。

 まず、一覧上でタイトルを読みます。「byteをDBに格納」
ここで、「バイト配列を格納したいのか、1バイトを格納したいのか」とか、「データベースは何だろう?」「コネクションができないのだろうか?」などと思いながら、クリックして中身を見ます。

> まず、格納したいものは、以下のような16進数のデータです。
> 「1E0015・・・」

ふむふむ。


> いまはbool配列に{0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1・・・}のデータを8個ずつ

………は?byte じゃないの?何で bool 配列なの?


> int配列に{30, 0, 5,・・・}と変換して
> byte配列に{1E,0,15・・・}と変換しています。
> bool配列からbyte配列に変換する方法はありますでしょうか?

え?byte を DB に格納じゃないの?変換の方法を聞きたいの?
それにしても、bool から int に変換できているんだよね?どうして byte への変換が問題になるの?
int を介さずに直接 byte にしてやれば良いじゃない。
bool 配列から8個ずつ取っているんだよね?そのまま byte じゃない。
ということは、int への変換が間違ってるよ。int は32ビットだよ。


> また、byte配列のDBへの格納方法も合わせてお教えいただけると助かります。

へ?「助かる」と追加する程度なの?タイトルに持ってきているのに?


 あなたが私のことを知らないのと同様、この質問文を読むほとんどの人は、あなたのことを知りません。
あなたにとって、bool 配列がある事はまったく当然のことなのかもしれませんが、あなたを知らない人にとっては、そうではありません。
もし、タイトルが「bool 配列から byte 配列にしたい」であれば、この内容でもかまわないかもしれません。
しかし、タイトルが「byte を DB に格納」なので、ここに繋げるように話を構成しないと、読む人は混乱します。
例えば、「いまは bool 配列に…」ではなく、「この格納したいデータの元はセンサー情報で、それぞれオン/オフの情報を bool 型として受け取ります。現在は、True を1、False を0として、それぞれ8組毎に1バイトを表すものとして扱っています」のようであれば、話が繋がっています。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -