Как создать файл csv с выводом запроса sql (SQLServer) в C#?Как создать файл csv с выходом sql-запроса?
Вот код, который я пытался до сих пор:
public static void CreateManifestFile(string SQLFileToExecute, string ConnectionString, StreamWriter logfile)
{
int success = 0;
List<string> results = new List<string>();
string script = File.ReadAllText(@SQLFileToExecute);
Logging.WriteToLog(" ", logfile);
Logging.WriteToLog(" ", logfile);
Logging.WriteToLog("=== Processing file: [" + SQLFileToExecute + "] ===", logfile);
// split script on GO command
IEnumerable<string> commandStrings = Regex.Split(script, @"^\s*GO\s*$", RegexOptions.Multiline | RegexOptions.IgnoreCase);
SqlConnection Connection = new SqlConnection(ConnectionString);
Connection.Open();
Connection.InfoMessage += delegate(object sender, SqlInfoMessageEventArgs e)
{
Logging.WriteToLog("Msg: " + e.Message, logfile);
success = 1;
};
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = Connection;
foreach (string commandString in commandStrings)
{
if (commandString.Trim() != "")
{
success = 0;
Console.WriteLine(commandString.ToString());
logfile.WriteLine(commandString.ToString());
results.Add(sqlcmd.ExecuteReader(commandString));
if (success == 0)
{
Logging.WriteToLog("Command executed successfully.", logfile);
}
}
}
Connection.Close();
int length = results.Count;
string delimter=",";
using(System.IO.TextWriter writer = File.CreateText("manifest.csv"))
{
Logging.WriteToLog("manifest count:" + length, logfile);
for(int index = 0; index < length; index++)
{
writer.WriteLine(string.Join(delimter,results[index]));
}
}
}
Но я получаю ошибки на линии:
results.Add(sqlcmd.ExecuteReader(commandString));
Ошибки:
Error 1 Лучший перегружен метод для 'System.Collections.Generic.List.Add (string)' имеет некоторые недопустимые аргументы
Ошибка 2 Аргумент 1: не может конвертировать из 'System.Data.SqlClient.SqlDataReader' на 'строка'
Error 3 Лучший перегруженный метод подходит для «System.Data.SqlClient.SqlCommand.ExecuteReader (System.Data.CommandBehavior)» имеет некоторые недопустимые аргументы
Ошибка 4 Аргумент 1: не удается преобразовать из 'строка' в 'System.Data.CommandBehavior'
Я Fol this post, чтобы сделать это.
Вы что-то пробовали? –
Извините, но '-1' за нулевое усилие. –
Если у вас есть какие-либо проблемы, отправьте свой код или то, что вы пробовали до сих пор. – Taosique