none
이것좀 봐주세요. RRS feed

  • 질문

  •  어떤 테이블에 레코드가 삽입될때마다 해당 레코드의 한 컬럼에 +1씩 순차적으로 저장되게 할려고 합니다.

     If CurrentRow <> Ds1.양산지그.Rows.Count - 1 Then

                    CurrentRow = Ds1.양산지그.Rows.Count - 1 이 코드가 마지막 레코드로 옮기는것 맞죠?

    그래서 마지막 레코드로 현재 레코드를 옮긴후에

    텍스트박스에 마지막 레코드의 컬럼 +1을 표시하고 그 텍스트박스를 저장하려 하는데 잘안되네요.

    다음은 현재 잘안되고 있는 코드입니다.

    Imports System
    Imports System.IO
    Imports System.Text
    Imports System.Data
    Imports System.Data.SqlClient


    Public Class 지그입력


        Protected Conn As New SqlConnection
        Protected Adt As New SqlDataAdapter
        Protected Ds1 As New ds지그현황
        Protected cmd As SqlCommand
        Protected SQL As String
        Protected CurrentRow As Integer

     


        Private Sub 지그입력_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

     

            Try

                Conn.ConnectionString = "SERVER=서버;UID=sa;PWD=비밀번호;DATABASE=지그목록"
                SQL = "select * from 양산지그"


                cmd = Conn.CreateCommand
                cmd.CommandType = CommandType.Text

                Adt.SelectCommand = cmd
                Adt.Fill(Ds1, "양산지그")
                CurrentRow = 0

                If CurrentRow <> Ds1.양산지그.Rows.Count - 1 Then

                    CurrentRow = Ds1.양산지그.Rows.Count - 1

                    DsToScreen()

                End If


                cmd.CommandText = "insert into 양산지그 " & _
                "(인덱스,업체, 공장, 모델명, 리비젼, 장비타입, 보유수량) " & _
               "values (@인덱스, @업체, @공장, @모델명, @리비젼, @장비타입, @보유수량) "

                cmd.Parameters.Add("@인덱스", SqlDbType.Int, 50)
                cmd.Parameters.Add("@업체", SqlDbType.NVarChar, 50)
                cmd.Parameters.Add("@공장", SqlDbType.NVarChar, 50)
                cmd.Parameters.Add("@모델명", SqlDbType.NVarChar, 50)
                cmd.Parameters.Add("@리비젼", SqlDbType.NVarChar, 50)
                cmd.Parameters.Add("@장비타입", SqlDbType.NVarChar, 50)
                cmd.Parameters.Add("@보유수량", SqlDbType.Int)

            Catch ex As Exception

            End Try

        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            Conn.Open()

            Try
                cmd.Parameters("@인덱스").Value = TextBox3.Text
                cmd.Parameters("@업체").Value = ComboBox1.Text
                cmd.Parameters("@공장").Value = ComboBox2.Text
                cmd.Parameters("@모델명").Value = TextBox1.Text
                cmd.Parameters("@리비젼").Value = TextBox2.Text
                cmd.Parameters("@장비타입").Value = ComboBox3.Text
                cmd.Parameters("@보유수량").Value = ComboBox4.Text

                cmd.ExecuteNonQuery()
                Conn.Close()

                TextBox1.Clear()
                TextBox2.Clear()

            Catch exc As Exception
                MsgBox(exc.ToString, vbCritical, "ERROR")
                End

            End Try

        End Sub

        Public Sub DsToScreen()

            With Ds1.양산지그
                Dim INDEX As Integer

                INDEX = .Rows(CurrentRow)("인덱스").ToString
                TextBox3.Text = INDEX + 1

            End With
        End Sub
    End Class

    폼이 로드될 때 TEXTBOX3에 마지막 레코드의 컬럼값 + 1 이 표시되게 하고싶습니다.

    도와주세요. ^^

    2013년 6월 17일 월요일 오후 8:36

답변

  •             'CurrentRow = 0
    
                'If CurrentRow <> Ds1.양산지그.Rows.Count - 1 Then
    
                'CurrentRow = Ds1.양산지그.Rows.Count - 1
    
                'DsToScreen()
    
                'End If
    
                If Ds1.Tables(0).Rows.Count > 0 Then
                    Dim INDEX As Integer
                    INDEX = Convert.ToInt32(Ds1.Tables(0).Rows(Ds1.Tables(0).Rows.Count - 1)("인덱스"))
                    TextBox3.Text = (INDEX + 1).ToString()
                End If
    이렇게 해보면 어떨까요?
    • 편집됨 GoldrushKoreaMVP 2013년 6월 19일 수요일 오전 8:41 .ToString()
    • 답변으로 표시됨 헤일로 2013년 6월 19일 수요일 오후 3:22
    2013년 6월 19일 수요일 오전 5:58

모든 응답

  •             'CurrentRow = 0
    
                'If CurrentRow <> Ds1.양산지그.Rows.Count - 1 Then
    
                'CurrentRow = Ds1.양산지그.Rows.Count - 1
    
                'DsToScreen()
    
                'End If
    
                If Ds1.Tables(0).Rows.Count > 0 Then
                    Dim INDEX As Integer
                    INDEX = Convert.ToInt32(Ds1.Tables(0).Rows(Ds1.Tables(0).Rows.Count - 1)("인덱스"))
                    TextBox3.Text = (INDEX + 1).ToString()
                End If
    이렇게 해보면 어떨까요?
    • 편집됨 GoldrushKoreaMVP 2013년 6월 19일 수요일 오전 8:41 .ToString()
    • 답변으로 표시됨 헤일로 2013년 6월 19일 수요일 오후 3:22
    2013년 6월 19일 수요일 오전 5:58
  •  와 감사합니다.

    덕분에 아주 깔끔하게 해결했습니다. ^^

    2013년 6월 19일 수요일 오후 6:02