Google Mobile Ads

Wednesday, July 20, 2016

SQL Bulk Copy ile datatable daki veriyi veritabanındaki bir tabloya aktarma

Dim dtVender As New DataTable()

dtVender.Columns.Add(New DataColumn())
dtVender.Columns.Add(New DataColumn())
dtVender.Columns.Add(New DataColumn())
                            

Dim vRow As DataRow = dtVender.NewRow()
vRow.Item(0) = dsID
vRow.Item(1) = vender_no
vRow.Item(2) = sku_id

dtVender.Rows.Add(vRow)

Datatable'ı doldurduktan sonra aşağıdaki metodu kullanarak datatable içerisindeki verileri "tbl_Vender" tablosuna aktarabilirsiniz.

SQLBulkCopyToTable(dtVender, "tbl_Vender")


Private Sub SQLBulkCopyToTable(ByRef sourceDT As DataTable, destinationTableName As String)
        Try
            Using cn As New SqlConnection(ConfigurationManager.AppSettings("ConnectionString").ToString())
                cn.Open()
                If sourceDT.Rows.Count > 0 Then
                    Using copy As New SqlBulkCopy(cn)
                        copy.DestinationTableName = destinationTableName
                        copy.BulkCopyTimeout = 5000
                        copy.BatchSize = 5000
                        copy.WriteToServer(sourceDT)
                    End Using
                End If
            End Using
        Catch ex As Exception

        End Try
End Sub

Wednesday, December 23, 2015

Şifre değerini SecureString'e Dönüştürme

Şifre değerini SecureString'e Dönüştürme

    Public Shared Function ConvertToSecureString(strPassword As String) As SecureString
        Dim secureStr = New SecureString()
        If strPassword.Length > 0 Then
            For Each c In strPassword.ToCharArray()
                secureStr.AppendChar(c)
            Next
        End If
        Return secureStr
    End Function

Wednesday, December 16, 2015

SQL Server'da bir tabloya ait kolon bilgilerinin alınması. 3 farklı seçenek.

SQL Server'da bir tabloya ait kolon bilgilerinin alınması. 3 farklı seçenek.

Seçenek 1:

SELECT ISNULL(COL.COLUMN_NAME,'') as Name
    ,ISNULL(COL.DATA_TYPE, '') as Type
    ,ISNULL(COL.NUMERIC_SCALE,0)  as Numeric_Scale  
    ,ISNULL(COL.NUMERIC_PRECISION, 0) as Precision  
    ,ISNULL(COL.CHARACTER_MAXIMUM_LENGTH, 0) as LenStr 
    ,CASE WHEN ISNULL(KEYCOLUSE.COLUMN_NAME,'0') = '0' THEN 0 ELSE 1 END  as isPrimaryKey
FROM INFORMATION_SCHEMA.COLUMNS as COL
LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE as KEYCOLUSE
ON KEYCOLUSE.TABLE_NAME = COL.TABLE_NAME
AND KEYCOLUSE.COLUMN_NAME = COL.COLUMN_NAME
WHERE COL.TABLE_NAME = 'TableName'
    AND COL.TABLE_SCHEMA = 'dbo'

ORDER BY COL.ORDINAL_POSITION


Seçenek 2:

SELECT C.name AS Name,
       T.name AS Type,
       ISNULL(C.scale, 0) AS Numeric_Scale,
       ISNULL(C.precision, 0) AS Precision,
       (CASE WHEN T.name LIKE '%char%' THEN ISNULL(C.max_length, 0) ELSE 0 END) AS LenStr,
       (CASE WHEN ISNULL(P.column_id,0)>0 THEN 1 ELSE 0 END) As isPrimaryKey
FROM sys.columns AS C
LEFT JOIN (
             SELECT  ic.object_id, ic.column_id
             FROM    sys.indexes AS i INNER JOIN
             sys.index_columns AS ic ON  i.object_id = ic.object_id AND i.index_id = ic.index_id
             WHERE   i.is_primary_key = 1
) AS P ON C.object_id = P.object_id AND C.column_id = P.column_id
INNER JOIN sys.types T on T.system_type_id = C.system_type_id
WHERE OBJECT_NAME(C.object_id) = 'TableName'
ORDER BY C.column_id 


Seçenek 3:

SELECT C.id,C.name  AS Name,
             T.name AS Type,
             ISNULL(C.scale, 0) AS Numeric_Scale,
             ISNULL(C.prec, 0) AS Precision,
             (CASE WHEN LOWER(T.name) LIKE '%char%' THEN ISNULL(C.length, 0) ELSE 0 END) AS LenStr,
             (CASE WHEN ISNULL(P.colid,0)>0 THEN 1 ELSE 0 END) As isPrimaryKey
FROM syscolumns AS C
LEFT JOIN (
                    SELECT  ic.id, ic.colid
                    FROM    sysindexkeys AS ic
) AS P ON C.id = P.id AND C.colid = P.colid
INNER JOIN systypes T on T.xtype = C.xtype AND T.status=0
WHERE OBJECT_NAME(C.id) = 'TableName'
ORDER BY C.colorder 

* How to find out column names of a table in SQL Server

Tuesday, December 2, 2014

"Cannot resolve collation conflict for DISTINCT operation." hatası

Database sunucusu ile veritabanınız farklı collationlara sahip ve "Cannot resolve collation conflict for DISTINCT operation." hatası alıyorsunuz. Öyleyse yapmanız gereken aşağıdaki gibi kodunuza  COLLATE "CollationAdi" eklemek.

SELECT DISTINCT (ISNULL(D.DemirbasCinsi,'') + '-' + ISNULL(V.ParaKodu,'')) COLLATE SQL_Latin1_General_CP1_CI_AS AS KolonAdi
FROM v_Demirbas AS D
INNER JOIN tbl_VUK AS V ON D.dmb_barkod  COLLATE SQL_Latin1_General_CP1_CI_AS =V.dmb_barkod  COLLATE SQL_Latin1_General_CP1_CI_AS

Wednesday, March 12, 2014

.Net ile SFTP dosya transfer işlemleri(SFTP file transfers in .NET)

.Net üzerinden SFTP (secure ftp) dosya transfer işlemi gerçekleştirecekseniz, SSHnet en iyi çözüm. 

Buradan indireceğiniz Renci.SshNet dll dosyasını uygulamanıza referans olarak ekledikten sonra aşağıdaki örnek kodla dosya indirme işlemini gerçekleştirebilirsiniz. Ayrıntılı bilgiyi sshnet'in kendi sitesinde bulabilirsiniz.

Dim remoteDirectory As String = "/"
Dim localDirectory As String = "C:\Test\"
Dim connInfo As Object = New Renci.SshNet.PasswordConnectionInfo("hostadresi", "username", "password")
Using client As New Renci.SshNet.SftpClient(connInfo)
      client.Connect()
      fileName = remoteDirectory & "indirilecekdosya.txt"
      If client.Exists(fileName) Then                                                        client.DownloadFile(fileName, New System.IO.FileStream(localDirectory & fileName, FileMode.Create, FileAccess.Write), Nothing)
      End If
      client.Disconnect()
End Using


LinkWithin

Related Posts Plugin for WordPress, Blogger...