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

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

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

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>
■1513  Re[6]: プロジェクト間〜の続きで
□投稿者/ Jitta -(2005/10/04(Tue) 21:28:03)

    分類:[VB.NET] 

     えっと、私は掲示板での回答を、全くの善意、全くのボランティアでやっているわけではありません。私にとって学ぶものがあるので、やっています。

     たとえば、今回の場合、No1479 の方で、「プロジェクト間でデータをやりとりする」という問題だと思ったので、おもしろそうなので出てきました。

     なので、MSDN を見ればわかるような問題は、「読んだの?」としか返しません。

     先に「DataSet」「行」「列」「DataTable」というキーワードを上げています。MSDN で、「System.Data 名前空間」を見ると、
    http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemData.asp
    DataColumn クラス
    http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatacolumnclasstopic.asp
    DataRow クラス
    http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatarowclasstopic.asp
    が見つかります。このうち、『1行まるまる持ってくる』と書いていますから、「行」の方を見ればよい、ということがわかると思いました。

     そこで、DataRow クラスを見ると、新しい行を作って、新しい行の列に値を入れているサンプルコードが掲載されています。ということは、取り出すには、代入と反対のことをすればいいと思いますが、どうでしょうか?
     または、メンバ一覧を見ると、
    http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatarowmemberstopic.asp
    『オーバーロード。 指定した列に格納されているデータを取得または設定します。』というItem プロパティがあります。これの説明も合わせてみると、わかると思うのですが。。。


     それとも、それを見てもわからなかったのでしょうか?そうであるなら、大変興味のある事例です。Microsoft に対して、MSDN の改善要求を出しますから、どうぞ、どこをどのように理解してわからなかったのか、教えてください。

     とにかく、私の投稿を読んで、あなたが投稿するまでの間にしたことを教えてください。それが私が要求する、私の情報に対する対価です。
    ___________________________________________________________________
    □ written by Jitta on 2005/10/04
    http://quick-tips.hp.infoseek.co.jp/ じったのノート
    □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2004-Sept.2006
記事No.1491 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■1502  Re[4]: プロジェクト間〜の続きで
□投稿者/ Jitta -(2005/10/03(Mon) 20:07:00)

    分類:[VB.NET] 

     えっと、書くときに気をつけていただきたいのが、「暗黙知を公開する」ということです。
     たとえば、このスレッド、 No1479 を見ていないと、何のことだかわかりません。たまたま私が見たときは、上下に並んでいたので「これの続きかな?」と見当をつけることが出来ました。

     『無理矢理っぽい』は、私の読み違いです。失礼しました。DataGrid1 を、フォームをまたいで表示させようとしているのかと思いました。
     『選択した一つの情報だけ返したいのです。』は、「ソースからそれを読み取れ」ということでしょうか?そんなことは、文章として書かれていないですよね?これが「暗黙知」です。
    (私はコードを貼り付けられても、読み解くのが面倒なので、ほとんど読みません)


     『選択した一つの情報だけ返したいのです。』についてですが、DataGrid または DataSource としての DataTable ですから、当然複数行あります。複数行の中から1行を絞り込むのは、どのようにして行うのでしょうか。
     また、このフォームオブジェクトの生存期間は、どのようになっているのでしょうか。オブジェクトが破棄されれば、オブジェクトが持っているオブジェクトへのアクセスも出来なくなります。従って、必要な検索結果がどれだけか、というのも、重要になってきます。


    ※ダイアログとして表示し、1行だけを選択後、「OK」ボタンをクリックする。
    ※このとき、選択されている1行の情報のみ、返せればよい。

    という仕様で、いいのでしょうか?(ソースから読み取った仕様)
     それでしたら、最初のコードでもいいと思います。後は「見えない仕様」との戦いとなるわけで。

     私なら、1行まるまるとってくるか、「列」を指定して取ってくるようにします。表示しなければらならい項目が増えることは、よくあることなので、プロパティとして1つ1つ作るなら、 frm表示 と frm検索 の2つとも変更しなければならないからです。
     1行まるまる持ってくるか、「列」指定出来るようにしておけば、 frm表示 だけ修正すれば、表示する項目が増えたときにも対応できます。
     また、型付けされた DataSet を作成しておけば、行も型付けされます。型付けされれば、データバインドを使うことも出来ます。
    ___________________________________________________________________
    □ written by Jitta on 2005/10/03
    http://quick-tips.hp.infoseek.co.jp/ じったのノート
    □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2004-Sept.2006
記事No.1491 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■1495  Re[2]: プロジェクト間〜の続きで
□投稿者/ Jitta -(2005/10/02(Sun) 06:45:25)

    分類:[VB.NET] 

    上、取り消し。。。

    “図表モード”にしたら、インデントも出来るようです。

     んで、

    > このようにretuenでのやりとりや、DataGridからのデータの出し方が
    > 無理やりっぽいのです。

    これの意味がわかりません。“無理”ってのは、どのようなことを試みたところ、
    どうなったから、“無理”と判断したのでしょう?ただ『無理っぽい』と書かれて
    も、「無理じゃない」と返したくなります、この内容なら。


    っつうか、DatraGrid1 を返そうとした?そりゃ無理だわ。
    m_MasterDt を返してください。

    ' せっかくここで宣言しているんだから
    Private m_MasterDt As DataTable

    Private Sub frm検索_Load(...) Handles MyBase.Load
    ...
    Try
    sqlCon = New SqlClient.SqlConnection(...)

    Dim dSet As DataSet = New DataSet("情報")
    Dim dAdp As SqlClient.SqlDataAdapter

    sqlCon.Open()

    dAdp = New SqlClient.SqlDataAdapter( _
    "SELECT * FROM T_情報", sqlCon)
    dAdp.Fill(dSet, "情報")

    Me.m_MasterDt = dSet.Tables("情報")
    ...

    Catch ex As Exception
    MessageBox.Show(ex.Message)
    Finally
    ' 元のでもいいけど、Catch 内で return することもあるので、
    ' このような形で覚える。
    ' DataAdapter も Dispose が必要なので、
    ' try の外で宣言して、finally で dispose する
    sqlCon.Close()
    End Try
    End Sub

    ' VB のプロパティって、こうだっけ?
    Public Property DataTable MasterTable
    Get
    return m_MasterDt
    End Get
    End Propperty

    _____________________________________________________________________________
    □ Posted by Jitta on 2005/10/02
    http://quick-tips.hp.infoseek.co.jp/ じったのノート
    □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2005-Sept.2006

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

■1494  Re[1]: プロジェクト間〜の続きで
□投稿者/ Jitta -(2005/10/02(Sun) 06:30:06)

    分類:[VB.NET] 

    わからん

    まず、“プロジェクト”の構成を明らかにしてください。

     で、プロジェクトは違うけど、ソリューションは同じなら、プロジェクト参照をさせます。

     次に、“クラスではなくオブジェクトを”共有できる仕組みを考えます。
     アプリケーションが全く別なら、「アプリケーションドメイン間通信」を使います。ソケットで通信しても良いし、ファイルを使っても良いし、メッセージを使ったり、共有メモリを使ったり、、、、

     同じアプリケーションで、メインプロジェクトとクラスライブラリで通信するなら、“同じオブジェクト”を操作できるようにします。
     間にクラスを挟むなら、そのクラスをシングルトンにします。
     挟まないなら、メインプロジェクトがクラスライブラリのクラスをオブジェクト化します。


     クラスの共有と、オブジェクトの共有が理解できていないように思われ。。。
    _____________________________________________________________________________
    □ Posted by Jitta on 2005/10/02
    http://quick-tips.hp.infoseek.co.jp/ じったのノート
    □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2005-Sept.2006
記事No.1491 のレス /0過去ログ2より / 関連記事表示
削除チェック/

<前の20件

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>

ヒット件数が多いので過去ログ1〜2 までの検索結果 / 過去ログ3からさらに検索→

パスワード/

- Child Tree -