• ベストアンサー

データベースの値を構造体へ代入

VB.NETにてWindowsMobileの開発を行っています。 データベースへのアクセスに時間がかかるので、 最初にデータベースの値を全て構造体配列へ代入しておき、 最後に保存とした時にまたデータベースへ代入させるといったプログラムを組もうと思います。 その際に全てのフォームから構造体配列へアクセスさせたいのですが、 構造体配列をグローバル化させる方法はありませんでしょうか? ご教授のほどよろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • mindatg
  • ベストアンサー率48% (110/227)
回答No.2

>データセットの存在自体知りませんでした。^^; >データセットでやりたいと思います。 >データセットの方法もご教授いただけますでしょうか? そこまで面倒見切れません。ご自身で調べてください。

glee_sss
質問者

お礼

回答ありがとうございます。 御尤もです。 自分で解決いたしました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

グローバルなDataSetなりDataTable作った方が楽な気もしますが staticなクラスに持たせるなり、モジュールに持たせるなり・・ 識者の方が見たら激怒するかもしれませんが、 Module Module1  Public g_aryAtts As ArrayList ' 構造体を格納するアレイ  Public Structure MyAtt    ' 構造体    Dim strhoge As String    Dim ihoge As Integer  End Structure End Module ~~~~~↓適当なクラス~~~ Private Sub hoge1()  Dim att As MyAtt  att.ihoge = 1  att.strhoge = "aaa"  g_aryAtts.Add(att) End Sub

glee_sss
質問者

お礼

回答ありがとうございます。 データセットの存在自体知りませんでした。^^; データセットでやりたいと思います。 データセットの方法もご教授いただけますでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB6でやると構造体の配列になる変数をVB2008では何で作ればいいか

    VB6でプログラムを作っていたときは 値のセットが配列になるとき 構造体を動的配列で宣言してデータを足して作りました。 VB2008で開発をすることになり 同じようなことをしたいのですが もっと便利なやり方が登場したりするのでしょうか? クラスで挑戦したのですが動的配列はできないようでした。

  • 構造体の中身をデータベースにコピーする方法がわかりません。

     タイトルにも書いてありますが、 構造体の中身をmysqlで作成したデータベースに 書き込んでいく方法がわからなく、困っております。  PHPやODBCはまったく使い方がわからないので、 C言語のみでアクセスする方法をググってみたところ、 c apiというものがあることはわかりました。 しかし、capiを使ったサンプル自体が極端に少なく、 サンプルの内容もデータベースにアクセスして、テーブル内の 内容を表示するというものがほとんどでした。  変数の値をデータベースに書き込む、というだけのサンプルだけでもいいので、どなたか教えてくださればありがたいです。  もしくは、構造体の中身はcsvファイルとしてすべて書き出しているんですが、このcsvファイルをmysqlで直接読み込んでいったほうが早いのでしょうか?  よろしくお願いいたします。  

  • ファイルのデータを構造体に代入する方法

    学習し始めてから時間が経ちましたが、まだ初心者のまま・・・少しずつ頑張っている状態の者です。 今回はタイトルのことで御質問させてください。 関数Read(自己作成)でcsvファイルの内容を読み取り、読み取ったデータを用意しておいた構造体の変数ポインタを利用して代入しようと試みているのですが・・・要領がつかめません。 それで気になったのですが、読み込んだファイルを用意しておいた構造体に入れるにはどんな方法があるかよろしければご教授下さい。 私としてはforを使ったやり方があるのなら是非見本を見せてほしいのですが・・・ ちなみに、私が考えていたプログラム案は以下の通りです。 構造体にはcsvファイル・1レコード分の情報が入る構成。 構造体と読み取るファイルの構造は酷似しているが構造体全てに入る情報でない場合がある。 構造体には必要な分、配列領域を確保する ファイルの先頭アドレスはファイルポインタに代入。 構造体の先頭アドレスはポインタ変数に代入。   main関数とは別の関数の引数に2つのアドレスをコピー。 ★ そこでファイルデータを構造体へ代入しmainに戻って出力する。    その関数での戻り値は特になし(成功したら0・・・と考えていたのですが使い道が今のところはreturnだけです) ★で特に悩んでいるので、よろしくお願い致します。

  • クラスのプロパティに構造体を使いたい。

    VB6+SP5にて開発しております。 「クラス名.構造体名.変数名 = 値」といった感じで構造体をプロパティとして使用できればと考えているのですが、単純に構造体を定義しただけでは駄目なようです。実現は無理なのでしょうか?よろしくお願いします。

  • C#の構造体に関して

    C#の構造体に関して C#で構造体で配列を持ちたいと思い、宣言の仕方や使い方を 勉強していますが、どうしてもコンパイルは通るもののエラーと なってしまいます。 《ソース》 単純に構造体で宣言した"a"という配列に、"ABC"という文字列を 代入したいだけですが。。。 namespace テスト環境 { struct test { public string []a; } class Program { static void Main(string[] args) { test aaa = new test(); aaa.a[0] = "ABC"; } } } 配列の初期化等は、ようやく理解したつもりではいますが、構造体 が絡むとどうしてもわかりません。 どこをどのように修正したら良いかを教えて下さい。 初歩的な質問で申し訳ありませんが、よろしくお願いします。

  • ACCESSで値を代入できないとは?

    ACCESS2000を使用しています。 フォームを作り、画面のテキストボックスに値を入れると、エラーになります。 エラーコードは 2448。 エラーメッセージは オブジェクトに値を代入できない と出ますが、ヘルプが参照できません。 どういうことなのでしょうか。

  • サブフォームをブランクで開きたい(値の代入)

    現在、サブフォームを開く時に値の代入の後、DMax関数で+1をして最後のレコードに+1したIDをマクロで行っていますが、VBAでできないでしょうか? 1.サブフォームを開く Cmd Open フォーム名 2.値の代入で(””)をいれフォームをクリア 3.値の代入でID=DMax"テーブル”+1 良い知恵があれば教えて頂けないでしょうか マクロにあまり頼りたくないので宜しくお願い致します。

  • 構造体の値受け渡しについて

    初歩的な質問で申し訳ありません。 現在、下記の現象に悩んでいます。 私の勉強不足が原因で大変恐縮なのですが、知見のある方はぜひアドバイスを宜しくお願い致します。 開発環境:VisualStudio2005.NET C# 現在下記のような構成でプログラムを開発しています。  ・構造体を定義しているクラス  ・メイン画面  ・サブ画面 構造体定義を共有化し、 メイン画面からプロパティ渡しでサブ画面にデータを渡しサブ画面のみで構造体の中身を編集したいのですが、※1の代入のタイミングで、メイン画面側の構造体も値が変わってしまいます。 いろいろ調べてみたのですが構造体は値型の受け渡しと書いている記事しか見つかりませんでした。 上記機能を実現するための解決法をご存知の方がいらっしゃいましたらアドバイス宜しくお願い致します。 //============================================== //構造体定義クラス //============================================== public class StructureCommonClass { public struct TestType { public int Data; } } //============================================== //メイン画面 //============================================== public partial class Form1 : Form { private StructureCommonClass.TestType[] _Test = new StructureCommonClass.TestType[3]; //コンストラクタ public Form1() { InitializeComponent(); _Test[0].Data = 10; _Test[1].Data = 20; _Test[2].Data = 30; } //取得用プロパティ public StructureCommonClass.TestType[] GetTestData { get { return _Test; } } //ボタンイベント private void button_F1_Click(object sender, EventArgs e) { Form2 _frm = new Form2(this); _frm.ShowDialog(); _frm.Dispose(); } } //============================================== //サブクラス //============================================== public partial class Form2 : Form { private Form1 _mainForm; private StructureCommonClass.TestType[] _Test; public Form2(Form1 _frm) { InitializeComponent(); _mainForm = _frm; } //フォームロード private void Form2_Load(object sender, EventArgs e) { _Test = _mainForm.GetTestData; _Test[0].Data = 50; //---- ※1 ---- } }

  • 構造体のマスクというメンバ

    一般的な構造体についての質問です。 例えば CHOOSECOLOR 構造体のようにメンバにマスクを持つ構造体があって、 その構造体に値を代入する関数を使うには、CHOOSECOLOR 構造体のマスクを 設定し、そのマスクで有効にしたメンバだけが値を入れられるんですよね? マスクを持つ構造体というのは、それに値を入れる関数を使う前に マスクを指定してから、その構造体のアドレスを関数の引数にセット するんですよね? マスクは無視されて、それ以外の全てのメンバに値が入るというわけでは ないですよね?

  • ACCESS2021に変えたら値が代入されない

    開いてくださりありがとうございます。 MS-ACCESS2003で開発した業務システムがあります。 今回、ACCESS2021(Microsoft365)に変更したところ、不可解な動作が生じていて非常に困っています。 以下に抜粋したコードを記載します。 -- Me!税抜合計 = Me!小計 Me!消費税 = Me!消費税計 Me!伝票合計 = Me!総額 -- 伝票入力フォームから伝票明細を入力し、その合計が表示されるテキストボックスの値を作業用のテキストボックスに代入しています。 ブレイクポイントで停止させて確認すると、右側の項目には間違いなく値が入っている(マウスポインターを合わせると例えば1000と表示される)のですが、左側の項目は0のままです。 この状況は伝票明細が5行以上の時に発生します。 (4行以下の伝票では発生しません) しかもACCESS2003では問題なく動作していました。 値が代入されないのは長く開発していて初めての現象です。 ぜひアドバイスをお願いします。

電話がつながらない
このQ&Aのポイント
  • 外からの電話がつながらない
  • パソコンはWindowsで接続は有線LAN
  • Wi-Fiルーターの機種名はtp-linkで電話回線はひかり回線
回答を見る

専門家に質問してみよう