2012-12-06 2 views
0

Может помочь мне запустить SQL-запрос в VB.NET .Это запрос для преобразования данных таблицы в формате CSVПреобразование SQL-запрос в vb.net

USE newdb 
GO 
-- Check Table Column 
SELECT * 
FROM accountexample 
GO 
-- Get CSV values 
SELECT SUBSTRING(
(SELECT ' ' + s.BPl + ',' + s.Lo + ',' + s.Ltion + ',' + s.Ite + ',' + s.HNO + ',' + s.QNo + ',' + s.Country + ',' + s.STATE + ',' + s.Rem + CHAR(10) 
    FROM accountexample s 
ORDER BY s.BPl 
FOR XML PATH('')),2,200000) AS CSV 
GO 
+0

Вы не конвертировать SQL в VB. СЕТЬ. Вы можете запустить SQL-запрос с помощью VB.NET. Это то, что вы пытаетесь сделать? – dtbarne

+0

Дубликат http://stackoverflow.com/questions/5610536/how-do-i-run-this-sql-query-in-vb-net – dtbarne

+0

с указанием ошибки - Dim QUERY As String = "SELECT * from DB. dbo.accountexample ("SELECT '' + s.BPl + ',' + s.Lo + ',' + s.Ltion + ',' + s.Ite + ',' + s.HNO + ',' + s.QNo + ',' + s.Country + ',' + s.STATE + ',' + s.Rem + CHAR (10) FROM DB.dbo.accountexample s ORDER BY s.BPl ДЛЯ XML PATH ('')), 2,200000) AS CSV ") –

ответ

0

Сначала выберите необходимые записи в наборе данных

И затем используйте следующую функцию для преобразования набора данных в файл CSV.

Функция для преобразования набора данных в CSV

Sub SetDataTable_To_CSV(ByVal dtable As DataTable, ByVal path_filename As String, ByVal sep_char As String) 

    Dim writer As System.IO.StreamWriter 

    Try 

     writer = New System.IO.StreamWriter(path_filename) 



     Dim _sep As String = "" 

     Dim builder As New System.Text.StringBuilder 

     For Each col As DataColumn In dtable.Columns 

      builder.Append(_sep).Append(col.ColumnName) 

      _sep = sep_char 

     Next 

     writer.WriteLine(builder.ToString()) 



     For Each row As DataRow In dtable.Rows 

      _sep = "" 

      builder = New System.Text.StringBuilder 



      For Each col As DataColumn In dtable.Columns 

       builder.Append(_sep).Append(row(col.ColumnName)) 

       _sep = sep_char 

      Next 

      writer.WriteLine(builder.ToString()) 

     Next 

    Catch ex As Exception 



    Finally 

     If Not writer Is Nothing Then writer.Close() 

    End Try 

End Sub 

Взятые из следующих ссылок

http://redsouljaz.com/2010/06/03/vb-net-set-data-table-to-csv-file/

Если вы хотите сделать с моей стороны SQL через VB.NET.

Затем вы можете создать хранимую процедуру

CREATE PROC ConvertCSV 
AS 
BEGIN 
    SELECT SUBSTRING(
(SELECT ' ' + s.BPl + ',' + s.Lo + ',' + s.Ltion + ',' + s.Ite + ',' + s.HNO + ',' + s.QNo + ',' + s.Country + ',' + s.STATE + ',' + s.Rem + CHAR(10) 
    FROM accountexample s 
ORDER BY s.BPl 
FOR XML PATH('')),2,200000) AS CSV 
END 

И затем вызвать эту процедуру с vb.net из

Dim con As New SqlConnection("Data Source=<datasource>;Initial Catalog=<databasename>;User ID=<username>;Password=<password>") 
con.Open() 

Dim cmd As New SqlCommand("ConvertCSV", con) 

Try 
    cmd.CommandType = CommandType.StoredProcedure 
    cmd.ExecuteNonQuery() 

Finally 
    If cmd IsNot Nothing Then cmd.Dispose() 
    If cn IsNot Nothing AndAlso cn.State <> ConnectionState.Closed Then cn.Close() 
End Try 

Надеется, что это помогает

Смежные вопросы