다음 코드를 사용하여 데이터 테이블을 만든 다음 SQL 데이터베이스에 다시 쓰는 중입니다.데이터 테이블에서 SQL Server로 쓸 때 데이터가 잘못 저장되는 경우
나는 알 수 있듯이 날짜 값을 103으로 변환하므로 dd/mm/yyyy 여야합니다.
나는 데이터 테이블을 볼 경우 올바른 형식이지만 SQL 데이터베이스에 다시 기록 할 때 값이 데이터 테이블 (DT)을 만들 YYYY-MM-DD로
코드를 저장하는 중입니다
Dim conn9 As New SqlClient.SqlConnection
With conn9
.ConnectionString = "server=inlt01\SQLEXPRESS; database=DaisyBilling; integrated security=yes"
.Open()
End With
Dim cmd9 As New SqlClient.SqlCommand
With cmd9
.CommandText = "SELECT [CustomerCLI], LEFT(MIN(DATENAME(MONTH,[CallDate])),3) AS [Short Month Name], [CustomerLookup], [CustomerName], ROUND (SUM ([SalesPrice]),2) as [Sum of Buy Price], ROUND (SUM ([Sell Price]),2) as [Sum of Sell Price],[Tariff Lookup],[Qty],[LineDescription],[Billingmonth], (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(MAX ([CallDate]))-1),MAX ([CallDate])),103)) AS FromDate, (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,MAX ([CallDate])))),DATEADD(mm,1,MAX ([CallDate]))),103)) as ToDate FROM [DaisyBilling].[dbo].[" + TextBox1.Text + "] GROUP BY [CustomerCLI], [CustomerLookup],[CustomerName],[Tariff Lookup],[Qty],[LineDescription],[Billingmonth] ORDER BY [CustomerLookup]"
.CommandType = CommandType.Text
.CommandTimeout = 30
.Connection = conn9
End With
Dim dt As New DataTable
dt.Load(cmd9.ExecuteReader)
With ViewBillForm.DataGridView1
.AutoGenerateColumns = True
.DataSource = dt
End With
cmd9.Dispose()
cmd9 = Nothing
코드 SQL dB에 DataTable을 내보내려면 :
Dim conn2 As New SqlClient.SqlConnection
With conn2
.ConnectionString = "server=inlt01\SQLEXPRESS; database=MasterBill; integrated security=yes"
.Open()
End With
Using copy As New SqlBulkCopy(conn2)
copy.DestinationTableName = "dbo.DaisyCallsCurrentBill"
copy.WriteToServer(dt)
End Using
conn.Close()
conn.Dispose()
어떻게 다시 데이터베이스에 기록 될 때 제 값을 제대로 저장할 수 있습니까?
감사
왼쪽의 코드를 포맷하십시오. – Paparazzi