tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルテーブルの操作?
記事No2308
投稿日: 2005/09/28(Wed) 11:30
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
フォームにあるlbl営業日,list商品などの情報をテーブルT_送信情報に追加していきたいのですが、S
QL文(追
加の仕方)のところがいまいちわかりません。どうしたらいいのでしょうか?
※list商品の情報は商品と数量を1つのレコードに追加したい。(複数の商品があるため)
<例:テーブルに追加後>
営業日   伝票N0 商品名 個数
2005/09/29 000001 塩タン 3
2005/09/29 000001 ロース 1
2005/09/29 000001 カルビ 3

SQL文でINSET INTO を使うのはわかるのですが、その後の追加の記述(lbl営業日は営業日へlist商品
の商品
は商品へlist商品の数量は数量へ)しかたがわかりません。
教えていただけないでしょうか??お願いします。

[ツリー表示へ]
タイトルRe: テーブルの操作?
記事No2317
投稿日: 2005/09/28(Wed) 14:18
投稿者なおこ(・∀・)
お世話になります。

"INSERT INTO T_送信情報(営業日, 伝票NO, 商品名, 個数) " _
"VALUES ( '" + lbl営業日.Text + "'" …
となるんでしょう。

伝票N0・商品名・個数は、画面上で
どの様なコントロールにどの様な値でもっているんですか?

[ツリー表示へ]
タイトルRe^2: テーブルの操作?
記事No2318
投稿日: 2005/09/28(Wed) 14:36
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
ありがとうございます。
> 伝票N0・商品名・個数は、画面上で
> どの様なコントロールにどの様な値でもっているんですか?

フォームの?
フォームでしたら

伝票N0:
○コントロール
Label
○値
数値(0001とか)

商品名・個数:
テーブルからListBoxに商品コード、商品名を呼び出してきて商品名を表示させた後にtxt数量(個数)に
入力され
た値を追加しているもの。

[ツリー表示へ]
タイトルRe^3: テーブルの操作?
記事No2319
投稿日: 2005/09/28(Wed) 14:59
投稿者なおこ(・∀・)
お世話になります。

この前の続きですか。
だったら、Me.m_TestDtを弄ってやればいいでしょう。こんな風に。
# そのままコピペせずに、内容を理解してから使ってくださいね。
# 解らないところがあれば、回答しますので。

Private Function getSQL() As String
  Dim sqlBuilder As System.Text.StringBuilder
  Try
    sqlBuilder = New System.Text.StringBuilder
    For Each row As DataRow In Me.m_TestDt.Rows
      With sqlBuilder
        .Append("INSERT INTO T_送信情報(営業日, 伝票NO, 商品名, 個数) ")
        .Append("VALUES(")
        .Append("'" + Me.lbl営業日付.Text + "',")
        .Append("'" + Me.lbl伝票NO.Text + "',")
        .Append("'" + CType(row("商品名"), String) + "',")
        .Append(CType(row("数量"), String) + ")")
        .Append(";" + ControlChars.NewLine)
      End With
    Next
    Return sqlBuilder.ToString()
  Catch ex As Exception
    Throw ex
  End Try
End Function

> [OSのVer]:Windows    [VBのVer]:VB.NET  
> ありがとうございます。
> > 伝票N0・商品名・個数は、画面上で
> > どの様なコントロールにどの様な値でもっているんですか?
> ↑
> フォームの?
> フォームでしたら
> ↓
> 伝票N0:
> ○コントロール
> Label
> ○値
> 数値(0001とか)
>
> 商品名・個数:
> テーブルからListBoxに商品コード、商品名を呼び出してきて商品名を表示させた後にtxt数量(個数)

> 入力され
> た値を追加しているもの。

[ツリー表示へ]
タイトルRe^4: テーブルの操作?
記事No2320
投稿日: 2005/09/28(Wed) 15:09
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
ありがとうございます。
> Private Function getSQL() As String
>   Dim sqlBuilder As System.Text.StringBuilder
>   Try
>     sqlBuilder = New System.Text.StringBuilder
>     For Each row As DataRow In Me.m_TestDt.Rows
>       With sqlBuilder
>         .Append("INSERT INTO T_送信情報(営業日, 伝票NO, 商品名, 個数) "
;)
>         .Append("VALUES(")
>         .Append("'" + Me.lbl営業日付.Text + "',")
>         .Append("'" + Me.lbl伝票NO.Text + "',")
>         .Append("'" + CType(row("商品名"), String) + "'
,")
>         .Append(CType(row("数量"), String) + ")")
>         .Append(";" + ControlChars.NewLine)
>       End With
>     Next
>     Return sqlBuilder.ToString()
>   Catch ex As Exception
>     Throw ex
>   End Try
> End Function

では、さっそく。
上記の動きは送信ボタンを押してから発生したいのですが、
上記を記述して、送信ボタンのクリックイベントの中でgetSQL()を呼べばいいのでか??

[ツリー表示へ]
タイトルRe^5: テーブルの操作?
記事No2322
投稿日: 2005/09/28(Wed) 15:14
投稿者なおこ(・∀・)
お世話になります。

> では、さっそく。
> 上記の動きは送信ボタンを押してから発生したいのですが、
> 上記を記述して、送信ボタンのクリックイベントの中でgetSQL()を呼べばいいのでか??

そうなんですが、
呼んでも、SQL文が格納されたStringが戻ってくるだけです。

なので、呼んで、取得した値(SQL文)を、データベースに対して
発行しないといけませんね。
そのやり方については、Google等で検索すればなんぼでも出てきますんで
ご自分でお調べになって下さい。

[ツリー表示へ]
タイトルRe^6: テーブルの操作?
記事No2323
投稿日: 2005/09/28(Wed) 15:19
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
ありがとうございます。
調べてみます(*>_<*)!!

[ツリー表示へ]
タイトルRe^6: テーブルの操作?
記事No2324
投稿日: 2005/09/28(Wed) 17:12
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
お世話になります。
がんばって探したのですが、出てこなくて(涙)

            Dim scm As SqlClient.SqlCommand
            Dim scn As SqlClient.SqlConnection
            scn = New SqlClient.SqlConnection( _
                "Data Source = localhost;PersistSecurityInfo=False" _
                + ";Integrated Security=SSPI;database=Yuukari")
            scn.Open()

            

            scn.Close()
上記のコードの中のscn.Open()とscn.Close()の間に取得した値(SQL文)をデータベースに発行するコー
ドを書
けばいいのですか?

[ツリー表示へ]
タイトルRe^7: テーブルの操作?
記事No2326
投稿日: 2005/09/28(Wed) 18:30
投稿者なおこ(・∀・)
お世話になります。

↓を参照して、もうちょっとがんばってみましょう。
hhttp://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatasqlclientsqlcommandclassexecutenonqueryt
opic.asp

[ツリー表示へ]
タイトルRe^8: テーブルの操作?
記事No2327
投稿日: 2005/09/28(Wed) 19:42
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
ありがとうございます。

Dim scm As SqlClient.SqlCommand
            Dim scn As SqlClient.SqlConnection
            scn = New SqlClient.SqlConnection( _
                "Data Source = localhost;PersistSecurityInfo=False" _
                + ";Integrated Security=SSPI;database=Yuukari")
            scn.Open()
            Try
                scm = New SqlClient.SqlCommand(getSQL(), scn)
                scm.ExecuteNonQuery()
            Catch ex As Exception
                Throw ex
            End Try

            scn.Close()

でやったらできました!!
こういう事だったんのですか??

[ツリー表示へ]
タイトルRe^9: テーブル
記事No2330
投稿日: 2005/09/29(Thu) 12:41
投稿者なおこ(・∀・)
お世話になります。

↓を参考にトランザクションを使ってみましょう。あともう一息。
hhttp://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatasqlclientsqlconnectionclassbegintransact
iontopic3.asp

> [OSのVer]:Windows    [VBのVer]:VB.NET  
> ありがとうございます。
>
>  Dim scm As SqlClient.SqlCommand
>             Dim scn As SqlClient.SqlConnection
>             scn = New SqlClient.SqlConnection( _
>                 "Data Source = localhost;PersistSecurityInfo=False" _
>                 + ";Integrated Security=SSPI;database=Yuukari")
>             scn.Open()
>             Try
>                 scm = New SqlClient.SqlCommand(getSQL(), scn)
>                 scm.ExecuteNonQuery()
>             Catch ex As Exception
>                 Throw ex
>             End Try
>
>             scn.Close()
>
> でやったらできました!!
> こういう事だったんのですか??

[ツリー表示へ]
タイトルRe^10: テーブル
記事No2331
投稿日: 2005/09/29(Thu) 13:19
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
お世話になります。
このコードで動いたのですが何か問題でもあるのですか?

[ツリー表示へ]
タイトルRe^11:
記事No2333
投稿日: 2005/09/29(Thu) 15:43
投稿者なおこ(・∀・)
お世話になります。

> [OSのVer]:Windows    [VBのVer]:VB.NET  
> お世話になります。
> このコードで動いたのですが何か問題でもあるのですか?

確かに、動くと思います。
ただ、トランザクションを使う事は色々とメリットがあります。

hhttp://www.atmarkit.co.jp/fnetwork/rensai/sql25/sql1.html
より引用
データの不整合が起きないことを保証するリレーショナルデータベースシステム(RDBMS)のメカニズム
です。

今回のじゅんさんのアプリケーションは複数人で使用するのかどうかはわかりませんが、
データベースに対し、更新のSQL文(INSERT、DELETE、UPDATE)
を発行する時は、トランザクションを使う習慣を付けておいた方が今後の為と思われます。

[ツリー表示へ]
タイトルRe^12:
記事No2334
投稿日: 2005/09/29(Thu) 16:16
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
お世話になります。

> 確かに、動くと思います。
> ただ、トランザクションを使う事は色々とメリットがあります。
>
> hhttp://www.atmarkit.co.jp/fnetwork/rensai/sql25/sql1.html
> より引用
> データの不整合が起きないことを保証するリレーショナルデータベースシステム(RDBMS)のメカ
ニズム
> です。
>
> 今回のじゅんさんのアプリケーションは複数人で使用するのかどうかはわかりませんが、
> データベースに対し、更新のSQL文(INSERT、DELETE、UPDATE)
> を発行する時は、トランザクションを使う習慣を付けておいた方が今後の為と思われます。
なるほどそ言う事なのですか!!
今後のために使うようにしたいと思います。
ありがとうございました。

[ツリー表示へ]