人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C# とSQL serverで簡単なデータベースソフトを作るのですが、
配列のデータをテーブルに作る場合は
どうすればよいでしょうか?

「sql server 配列」でいろいろ検索してみたのですがよく分かりませんでした。

解決した場合は500ポイント差し上げますので分かりやすい解説をお願いいたします。

●質問者: oyasayumin
●カテゴリ:コンピュータ インターネット
✍キーワード:C# SQL Server ソフト データ データベース
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Yota
●100ポイント

http://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_2a.htm...

SQL99では配列型というのがあって、DBMSによっては実装されています。

お使いのSQL serverのデータ型にこういうものがなければ、文字列型にして格納・取出しする方が手っ取り早いと思います。

◎質問者からの返答

「SQL server 2000」と「SQL server 2005」を見てみたのですが、配列のデータ型は無いようです。

やはり文字列型を作って自分で分割・格納するしかないんですね。


2 ● Mook
●500ポイント ベストアンサー

PostgreSQL などでは データ型として配列をサポートしていますが、SQLServer はそういった型は無いので、処理により複数のデータを扱うよう対応する必要があります。

配列を個々のテーブルデータとして管理する方法もありますが、操作が面倒になるので今回はC#側でデータを処理する案を提示いたします。


まず配列データを格納するときに

 string arrayData = {"apple", "orange", "banana"};
 string joinedData = string.Join(",", arrayData );
 MessageBox.Show( joinedData );

のように結合し、一つの文字列としてデータを格納します。


逆にデータベースから取り出した後では、

 string[] arrayData = joinedData.Split(",");
 foreach (string stData in arrayData ) {
 MessageBox.Show(stData);
 }

のように分割して配列として扱います。



データ中に","がある場合はデリミタ(区切り文字)を別のものに変えればよいでしょう。

扱いたいデータが数値である場合は文字列に変換するか、今回は説明を見送りましたが別テーブルで管理するような対応が必要になると思います。

◎質問者からの返答

よく分かりました。ありがとうございます。

検索してみると、MySQLやPostgreSQLでは配列型があるようなので、SQL server にも有るのかと思ってこの質問をしてみました。

自分で分割・格納する処理を作って対応しようと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ