Рабочий код: кажется, что сервер sql при отправке данных из select ... для json auto автоматически выплевывает строки определенного размера. Но в конце строки нет криля. Таким образом, метод file.write может непрерывно объединять строки в одну большую строку в файле, которая является допустимым файлом json. В моем предыдущем коде использовался writeline, который, вероятно, добавлял crlf в конце каждой строки. Кроме того, ключом является использование (file), иначе можно увидеть, что выходной файл обрезан, что является проблемой в моем исходном посте.
public void Main()
{
ConnectionManager cm;
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"e:\jsontest"))
{
System.Data.SqlClient.SqlConnection sqlConn;
System.Data.SqlClient.SqlCommand sqlComm;
cm = Dts.Connections["crm_vm_2017_cs_dotnet"];
sqlConn = (System.Data.SqlClient.SqlConnection)cm.AcquireConnection(Dts.Transaction);
sqlComm = new System.Data.SqlClient.SqlCommand("select * from JJVCProduct for json auto", sqlConn);
System.Data.SqlClient.SqlDataReader reader = sqlComm.ExecuteReader();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
try
{
while (reader.Read())
{
file.Write(reader.GetValue(0).ToString());
}
}
finally
{
reader.Close();
}
cm.ReleaseConnection(sqlConn);
Dts.TaskResult = (int)ScriptResults.Success;
}
}