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

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

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

No.3628 の関連記事表示

<< 0 >>
■3634  Re[2]: データテーブルの名前について2
□投稿者/ まじん -(2006/05/17(Wed) 10:27:30)

    分類:[VB.NET] 

    No3633に返信(なおこ(・∀・)さんの記事)
    いつもありがとうございます

    > もし、Fill(ds, "wankuma")
    > とやれば、ds.Tables(0).TableName は "wankuma" のはずです。

    そうなんですね 上の"wankuma"の部分は なんでも良かったんですね
    好きな名前を付けられました"aa"でも"bb"でも

    > 一応、私がテスト用に作成したコードを張っておきますね。
    > 参考になればよいのですが...

    大変参考になりました ありがとうございました
    解決とさせて頂きます。

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

■3633  Re[1]: データテーブルの名前について2
□投稿者/ なおこ(・∀・) -(2006/05/17(Wed) 09:56:13)
>

    分類:[VB.NET] 

    2006/05/17(Wed) 09:57:00 編集(投稿者)

    お世話になります。

    No3628に返信(まじんさんの記事)
    型指定の無いデータセットの場合、Fill の第 2 引数で何も指定しなかった場合は
    Dataset 内部のテーブル名は、Table, Table1, Table2 ...
    と連番(?)で付けられていたような。

    もし、Fill(ds, "wankuma")
    とやれば、ds.Tables(0).TableName は "wankuma" のはずです。

    一応、私がテスト用に作成したコードを張っておきますね。
    参考になればよいのですが...

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

      Dim ds As DataSet = New DataSet
      Dim sqlConn As SqlClient.SqlConnection _
          = New SqlClient.SqlConnection("Server=(local);Database=NorthWind;Trusted_Connection=True;")
      Dim sqlDa As SqlClient.SqlDataAdapter

      sqlConn.Open()
      Try
        sqlDa = New SqlClient.SqlDataAdapter
        Try
          sqlDa.SelectCommand = New SqlClient.SqlCommand
          sqlDa.SelectCommand.Connection = sqlConn
          sqlDa.SelectCommand.CommandType = CommandType.Text
          sqlDa.SelectCommand.CommandText = _
          "SELECT * FROM [Orders] INNER JOIN [Order Details] ON [Orders].OrderID = [Order Details].OrderID "

          sqlDa.Fill(ds, "wankuma")
          Me.DataGridView1.DataSource = ds
          Me.DataGridView1.DataMember = ds.Tables(0).TableName 'コレは wankuma になる。
        Finally
          If Not sqlDa Is Nothing Then sqlDa.Dispose()
        End Try
      Finally
        If sqlConn IsNot Nothing Then sqlConn.Close()
        If sqlConn IsNot Nothing Then sqlConn.Dispose()
      End Try

    End Sub

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

■3631  Re[2]: データテーブルの名前について2
□投稿者/ まじん -(2006/05/17(Wed) 09:16:25)

    分類:[VB.NET] 

    No3629に返信(中博俊さんの記事)
    > 無理でしょ。
    > 型指定しないデータセット使わないのでわからないけど通常Tables[0]っていうやりかたしか使ったこと無い。

    いつもありがとうございます
    たいへん嬉しいです それが知りたかったんです。

     殆どの場合、データの検索や更新に使うツールを別のクラスに作っておき、そのクラスに前記のようなコードを入れてます
     それを他のフォームで流用するようにしてます(それが良いのか悪いのか練習を兼ねて) そのクラスを作る時に複数のデータを結合させる時にはどのテーブル名で出来上がるのか分からなくて、わざわざ他のフォームで先にデータセットの生成までやってみて、出来たテーブル名を前記コードの○○部分に入れて完成させてました。コマンドテキストやコネクションストリングなども実際にデータアダプターの構成までやってから自動作成されるコマンドテキストやパラメーターなどのコードを見に行き、それに少しだけ自分で分かる範囲で改良を加え(where ・・など)
    殆どコピペして使ってました
     プロの方から見ると 全く馬鹿なやり方なんだと思いますが 私にとってはあの自動作成が非常に便利な機能で エクセルのVBAのマクロ自動作成のような感覚で使ってます(2005になってからコマンドテキストなどは.resxファイルに書き込まれるようになったようで少し使い辛いですが)

     話が長くなってしまいました 書いていただいた Table[0]、
    これが 分からなかったんです
     da.Fill(ds.Tables(0))と書くと「テーブル0がみつかりません」と出るので
    どう書けば良いのかと悩んでました

      da.Fill(ds, "Tables[0]")

    これでいけたのですが これで良かったんでしょうか?



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

■3629  Re[1]: データテーブルの名前について2
□投稿者/ 中博俊 -(2006/05/17(Wed) 00:26:19)
>

    分類:[VB.NET] 

    無理でしょ。
    型指定しないデータセット使わないのでわからないけど通常Tables[0]っていうやりかたしか使ったこと無い。
記事No.3628 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■3628  データテーブルの名前について2
□投稿者/ まじん -(2006/05/17(Wed) 00:10:37)

    分類:[VB.NET] 


    分類:[VB.NET] 

    何度も申し訳ございません もう一つお願いいたします。

    下記のように すべてコードでデータをセレクトする場合のテーブル名は
    コードのどこかで 指定できるのでしょうか?

    Dim cn As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection
    Dim da As Data.OleDb.OleDbDataAdapter = New Data.OleDb.OleDbDataAdapter
    Dim cmd As Data.OleDb.OleDbCommand = New Data.OleDb.OleDbCommand
    Dim ds As DataSet = New DataSet

    cn.ConnectionString = "・・・・・・・・・・・"
    cmd.CommandText = "SELECT [テーブル1].ID, [テーブル1].Name, [テーブル2]." & _
    "電話番号, [テーブル3].背番号 FROM (([テーブル1]" & _
    " INNER JOIN [テーブル2] ON [テーブル1].ID = [テーブル2].No)" & _
    " INNER JOIN [テーブル3] ON [テーブル1].ID = [テーブル3].No)"

    da.SelectCommand = cmd
    cmd.Connection = cn
    da.Fill(ds, "テーブル1")
    cn.Close()

    da.fill(ds,"○○○")の○○○の部分です。


親記事 /0過去ログ3より / 関連記事表示
削除チェック/

■3628  Re[2]: 時間が最新のデータをUPDATEしたい
□投稿者/ Mr.T -(2007/05/17(Thu) 17:25:12)
    Mr.Tです、こんにちは。

    #すでに回答が出ているわけですが
    #ちょいと気になったので

    質問者の方は、
    >updateする際に指定番号の中で時間が最新のもののデータを変更したいです
    といっているので、

    > update A
    > set A.変更したい列= 変更したい値
    > from 変更したいテーブル A,
    > ( select 番号, max(時間) as 時間 from 変更したいテーブル group by 番号) B
    > where A.番号 = B.番号 AND A.時間 = B.時間

    これに、
    and A.番号 = @番号
    みたいな形にしないと、全件対象になってしまいます。
記事No.3618 のレス /過去ログ12より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -