'vb.net'에 해당되는 글 22건

(vb.net) 데이터셋 크리스탈리포터로 전송

vb.net
Imports System.Data.SqlClient
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Data
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

Dim ds As New DataSet1
        Dim cnn As SqlConnection
        Dim connectionString As String
        Dim sql As String 

        connectionString = "data source=servername; _
initial catalog=crystaldb;user id=username;password=password;"
        cnn = New SqlConnection(connectionString)
        cnn.Open()
sql = "SELECT Product_id,Product_name,Product_price FROM Product"
        Dim dscmd As New SqlDataAdapter(sql, cnn)
        Dim ds As New DataSet1
        dscmd.Fill(ds, "Product")
        MsgBox(ds.Tables(1).Rows.Count)
        cnn.Close()

        Dim objRpt As New CrystalReport1
        objRpt.SetDataSource(ds.Tables(1))
        CrystalReportViewer1.ReportSource = objRpt
        CrystalReportViewer1.Refresh()
    End Sub
End Class
Name
Password
Homepage
Secret

MS-SQL 2012 외부접속 허용

vb.net
1.
파일탐색기에서 "내 PC" 마우스 오른버튼, '속성' 클릭한다.

[제어판]-[시스템 및 보안]-[Windows 방화벽]-[고급설정]

[인바운드 규칙]을 선택하고 오른쪽의 [새 규칙]을 선택한다.

규칙종류는 '포트',
'TCP' 선택, '특정 로컬포트' 선택, '1433'
'연결 허용' 선택 

도메인, 개인, 공용 그대로 두고 다음 
이름-MS-SQL용 1443 포트 개방





2-1.
[시작]-[모든 프로그램]-[Microsoft SQL Server 2012]-[SQL Server 구성관리자] 실행한다.
 




2-2.
MS-Windows8에는 위의 메뉴가 보이지 않으며 [컴퓨터 관리] 메뉴 아래에서 설정할 수 있다.
파일탐색기에서 '내 PC'에서 마우스 오른버튼 눌러 '관리' 클릭한다.




 




'사용 안 함'을 '사용'으로 고치고 서버 재시작하면 접속 가능하다.



* 이렇게 했음에도 간혹 MSSQL로 외부접속이 안되는 경우가 발생한다. 

프로그램 설치시 제공되는 SQL Server Management Studio에서는 접속이 잘되는데(컴퓨터 자신이든 외부 컴퓨터이든), 프로그램 코드상에서는 접속이 안먹히는 경우가 생겼는데 몇 번의 재부팅중에 접속이 되는 경우가 있었다.

접속이 잘 되던 컴퓨터에서 컴퓨터 네트워크 이름을 바꾸고 나서 또 접속이 안되는 경우가 발생하기도 했다. 로컬에서 접속이 SQL Server Management Studio에서는 잘되는데 vb.net 코드에서는 잘되던 것이 접속을 할수가 없는 경우인데, 포트를 다시 설정하고 SQL서버를 재시작했음에도 안되다가 방화벽에서 문제가 생긴건지 간단한 업데이트를 같이 병행해서 그런건지 시간을 잡아먹다가 그냥 고스트로 복구하고 컴퓨터 이름을 바꾸니 잘된다. 


SQL 프로세스 이름도 EXpress 디폴트로 주면 접속이 안되고(이것도 원인을 못 찾음, 그냥 지우고 새로 설치하니 잘 된다)..
하여간 MS제품은 아무리 기능이 좋아도 유지, 복구면에서는 바닥이다. 

결론 MS사 제품은 설정부터가 남다르다. 

 

Name
Password
Homepage
Secret

(vb.net) DataGridView 머리말 변경

vb.net
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        DataGridView1.ColumnCount = 3


        DataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy
        DataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
        DataGridView1.ColumnHeadersDefaultCellStyle.Font = New Font(DataGridView1.Font, FontStyle.Bold)


        DataGridView1.Name = "제품목록"
        DataGridView1.Location = New Point(8, 8)
        DataGridView1.Size = New Size(500, 250)
        'DataGridView1.AutoSizeRowsMode = DataGridView1.AutoSizeRowsMode.DisplayedCellsExceptHeader()


        DataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
        DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single
        DataGridView1.GridColor = Color.Black
        DataGridView1.RowHeadersVisible = False

        'DataGridView1.Columns(0).HeaderText = "코드"
        'DataGridView1.Columns(1).HeaderText = "제품명"
        'DataGridView1.Columns(2).HeaderText = "가격"

        DataGridView1.Columns(0).Name = "코드"
        DataGridView1.Columns(1).Name = "제품명"
        DataGridView1.Columns(2).Name = "가격"

        DataGridView1.Columns(2).DefaultCellStyle.Font = New Font(Me.DataGridView1.DefaultCellStyle.Font, FontStyle.Italic)
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        DataGridView1.MultiSelect = False

        DataGridView1.Dock = DockStyle.Fill


    End Sub

Name
Password
Homepage
Secret

(vb.net) SQL 연결방법

vb.net
' SQL Client 연결
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim SqlConn As New SqlConnection("User ID=sa;Password=sa;Persist Security Info=True;Initial Catalog=pubs;Data Source=kblee4")
        SqlConn.Open()
        Dim ds As New DataSet()
        Dim da As Object
        Dim strSQL As String = "Select * from Authors"
        da = New SqlClient.SqlDataAdapter(strSQL, SqlConn)
        da.Fill(ds, "authors")
        SqlConn.Close()
        DataGrid1.DataSource = ds.Tables(0).DefaultView
    End Sub

'OLE DB 연결
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ' Conntring 의 변경
        Dim OleConn As New OleDbConnection("Provider=SQLOLEDB;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=kblee4")
        Dim strSQL As String = "Select * from Authors"
        OleConn.Open()
        Dim Ds As New DataSet()
        Dim OleAdapter As New OleDbDataAdapter(strSQL, OleConn)

        OleAdapter.Fill(Ds, "authors")
        OleConn.Close()
        DataGrid1.DataSource = Ds.Tables(0).DefaultView
    End Sub

'ODBC 연결
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        ' Conntring 의 변경
        Try
            Dim myConnection As New OdbcConnection("DSN=test;uid=sa;pwd=sa")
            myConnection.Open()
            'Driver={SQL Server};Server=MyServer;UID=sa;PWD=sqLs$5xr;Database=Northwind;
            'Driver={Microsoft ODBC for Oracle};Server=ORACLE8i7;UID=odbcuser;PWD=odbc$5xr

            Dim strSQL As String = "Select * from Authors"

            Dim adapter As New OdbcDataAdapter()
            Dim Ds As New DataSet()
            adapter.SelectCommand = New OdbcCommand(strSQL, myConnection)
            adapter.Fill(Ds)


            DataGrid1.DataSource = Ds.Tables(0).DefaultView
        Catch ex As Exception
            MsgBox(ex.Message.ToString)

        End Try

    End Sub


    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim c_ds As New DataSet()
        DataGrid1.DataSource = c_ds

    End Sub

 


간단 예제
Imports System.Data.SqlClient
Imports System.Data

Public Class Form1
    Dim conn As SqlConnection
    Dim str As String = String.Format("Data Source=컴퓨터이름; Initial Catalog=DB명;Integrated Security=False; uid=sa; pwd=패스워드")

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim csds As New DataSet
        Dim csda As New SqlDataAdapter
        Dim itmCur As ListViewItem
 
        Try
            conn = New SqlConnection(str)
            conn.Open()
        Catch ex As Exception
            MsgBox(ex.Message.ToString())
        End Try

        Dim strsql As String = "select * from 테이블명"
        csda.SelectCommand = New SqlCommand(strsql, conn)
        csda.Fill(csds)
 
        For Each ds As DataRow In csds.Tables(0).Rows
            itmCur = New ListViewItem
            itmCur.Text = ds.Item("ACTCODE").ToString()
            itmCur.SubItems.Add(ds.Item("ACTNAME").ToString())
            ListView1.Items.Add(itmCur)
        Next
 
    End Sub


End Class
 
Name
Password
Homepage
Secret

(vb.net) DataGridView

vb.net

MultiSelect : False (여러개 선택할 수 없음) 
SelectionMode : FullRowSelection (Cell이 아니라 Row 단위로 선택됨)
RowHeadersVisible : False (Row Header 보이지 않게)



'몇 번째 줄이 선택되었는지 읽어옴
Dim selection As String = DataGridView1.SelectedCells(0).RowIndex.ToString

'선택된 Row의 첫번째, 두번째 Column 값 읽음
address  =  DataGridView1.Item(0, Int(selection)).Value.ToString()
zip_code = DataGridView1.Item(1, Int(selection)).Value.ToString()

Name
Password
Homepage
Secret