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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■54288  Re[5]: VB.NETでコードマスタをキャッシュで保持
□投稿者/ 囚人 -(2010/10/12(Tue) 22:52:08)
    > ハッシュテーブルを使って、DBの構造をそのまま保持して、それを検索したいイメージです。
    > DataTable的にデータを持ちたい。


    その通りに、DataSet にグローバル変数的に持ったらいいんじゃないのかな?
    検索は、DataTable の Select メソッド使うとか Linq to DataSet を使うとか。
記事No.54269 のレス /過去ログ91より / 関連記事表示
削除チェック/

■55524  Re[4]: エクセルのVBAにてデータを整理したい
□投稿者/ りぃ -(2010/12/05(Sun) 14:47:10)
    No55451 (shu さん) に返信

    お返事遅くなりまして申し訳御座いません。

    Replace関数は私のエクセル(2007)では対応していませんでした。
    (正確には、関数の型が違っていたようです)

    しかし、SUBSTITUTE関数ではうまくいきました。
    ありがとうございます。

    目標としては、VBA上でハイフンを取り除けばよいのですが、
    いくつサイトを見てもそのような関数は存在しないようなので、
    ここでピリオドにしたいと思います。

    どうもありがとうございました。
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/

■91528  Re[5]: メモリリークに関して
□投稿者/ kiku -(2019/07/03(Wed) 17:43:52)
    No91525 (魔界の仮面弁士 さん) に返信
    > ■No91519 (WebSurfer さん) に返信
    >>Form コントロールの場合、Dispose(), Dispose(bool) の実装は Control toha違うようです。
    >>下のリンクをクリックして画像を見てください。
    >>http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f7%2fFormDispose0.jpg
    > Dispose の実装は、Label と Form で差異が無さそうに見えます。
    > 少なくとも .NET Compact Framework においては。

    わざわざ検証いただきありがとうございます。

    > 手元の VS2008 環境で、Form1 の継承関係をたどってみました。
    > CE 機が無いので、エミュレーターでの動作ですけれども。

    貼って頂いたソースを実機で動かすことはできましたが
    その結果をどのように掲示板に報告するのが良いのか
    ソースの内容を理解できていないため、
    わかりませんでした。
    継承関係を同じように報告すべきだとは思うのですが、
    ごめんなさい。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91530  Re[6]: メモリリークに関して
□投稿者/ 魔界の仮面弁士 -(2019/07/03(Wed) 19:37:39)
    No91528 (kiku さん) に返信
    > その結果をどのように掲示板に報告するのが良いのか
    > ソースの内容を理解できていないため、
    > わかりませんでした。

    とりあえず、Compact か否かで結果が異なるという程度の理解でも可ということで。
    Fx と CFx で結果が異なることを確認しておきたかっただけです。
    (これも逆アセンブル扱いになるのだろうか…?)


    .NET Framework の場合、Reference Source を見れば、
    Form.Dispose(bool) が実装されていて、
    その中で、ContainerControl.Dispose(bool) が呼ばれていることがわかります。
    そしてそれが、Control.Dispose(bool) を呼び出していることも。
    https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Form.cs,3793


    一方 .NET Comapct Framwork の場合、ソースコードは提供されていませんが、
    No91525 の実験結果から、Form.Dispose(bool) は特に存在しておらず、
    直接 Control.Dispose(bool) がそのまま呼ばれていることが確認できました。



    No91529 (魔界の仮面弁士) に追記
    > あと、経験則的なところで言えば、.NET Compact Framework 環境の場合、
    > オブジェクトの使用後は、参照変数に Nothing 代入を積極的に行った方が良いみたいです。

    Nothing の代入有無で、本当に解放状況が変化するかどうかを確認してみました。


    端末を再起動して、空きメモリが十分に確保されている状態において、
    Button1 でモードレス フォームを表示させた後、
    Button2 でそれを Close させています。

    すると、Close 直後の ★の行の Nothing 代入がコメントアウトされていた場合、
    Form2 および LabelEx が直ちに Dispose されないケースが確認できました。

    しかし Nothing 代入するようにした場合は、Button2 の時点ですぐに Dispose されるようになりました。


    Partial Public Class Form1
      Inherits Form

      Private f As Form2 = Nothing

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        f = New Form2()
        f.Show()
      End Sub

      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If f IsNot Nothing AndAlso Not f.IsDisposed Then
          f.Close()
          'f.Dispose()

          'f = Nothing  '★
        End If
      End Sub
    End Class

    Public NotInheritable Class LabelEx
      Inherits Label
      Public ReadOnly Id As Long
      Public Sub New()
        Id = Now.Ticks
        Trace.WriteLine(String.Format("==> {0} 生成 {1}", MyClass.GetType().Name, Id))
      End Sub
      Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        MyBase.Dispose(disposing)
        Trace.WriteLine(String.Format("<== {0} 破棄 {1} ({2})", MyClass.GetType().Name, Id, disposing))
      End Sub
    End Class

    Partial Public Class Form2
      Inherits Form
      Public ReadOnly Id As Long
      Public Sub New()
        Id = Now.Ticks
        InitializeComponent()
        Trace.WriteLine(String.Format("==> {0} 生成 {1}", MyClass.GetType().Name, Id))
      End Sub
      Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        MyBase.OnLoad(e)
        Controls.Add(New LabelEx() With {.Text = .Id.ToString()})
        SendToBack()
      End Sub
      Private Sub Form2_Disposed(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Disposed
        Trace.WriteLine(String.Format("<== {0} 破棄 {1}", MyClass.GetType().Name, Id))
      End Sub
      Protected Overrides Sub OnDoubleClick(ByVal e As System.EventArgs)
        MyBase.OnDoubleClick(e)
        Close()
      End Sub
    End Class



    ただ、何度も実験を繰り返すと空きメモリが減ってくるようで、
    その場合はどうやら GC が発動するらしく、Nothing 代入せずとも
    Dispose される結果になるようです。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■97303  Re[3]: 【VB.NET】SQLのフィールド名参照
□投稿者/ まりもん -(2021/04/23(Fri) 13:41:19)
    No97300 (工場プログラマー さん) に返信
    > ■No97291 (まりもん さん) に返信
    >>「接続済みのSQLのフィールド名」とは何を指すのでしょうか?
    >>
    >>SQLServerであるテーブルの列名を取得するのであれば
    >>SELECT name FROM sys.columns WHERE object_id = (SELECT object_id FROM sys.tables WHERE name = 'テーブル名')
    >>といったSQLで取得できますが、こういうことではなくてですか?
    >
    > 接続済みのSQLは忘れてください。フィールド名は項目名または列名です。
    >
    > あってはいるんですけど
    > 出来るかわからないですけどその列名を.NETでいう変数的な感じで.NETで使用したいです。
    > 説明が難しいですけど
    > レコードセットってどんな感じでしたっけ?
    >

    どこまでのことが出来て何が分からないのかが不明なのですが、普通のテーブルのデータの取得は出来ているのだと思います。
    そのデータの取得と同じように私が提示したSQLを実行すれば、目的のテーブルの列名が取得でき変数に格納できると思います。


記事No.97288 のレス /過去ログ168より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -