Member 14809249 Ответов: 2

Создание отдельных файлов из результатов запросов mysql


здравствуйте, кто-нибудь может мне помочь с этим делом?

Я сделал соединение mysql и отображение результатов, однако мне нужно создать txt-плитку для каждого результата с результатом в виде имени файла

Пример:
запрос mysql возвращает "123123123", а затем файл 123123123.txt будет создано.

вот мой код в его нынешнем виде

string[] filePaths = Directory.GetFiles(@"C:\Users\travi\Desktop\customers\Active");  
            foreach (string filePath in filePaths)  
                File.Delete(filePath);  
            string serverIp = "localhost";  
            string username = "root";  
            string password = "";  
            string databaseName = "teste";  
  
            string dbConnectionString = string.Format("server={0};uid={1};pwd={2};database={3};", serverIp, username, password, databaseName);  
            string query = "SELECT ID FROM `wp_posts` WHERE `post_type` = 'shop_subscription' and post_status = 'wc-active'";  
  
            var conn = new MySql.Data.MySqlClient.MySqlConnection(dbConnectionString);  
            conn.Open();  
  
            var cmd = new MySql.Data.MySqlClient.MySqlCommand(query, conn);  
            var reader = cmd.ExecuteReader();  
  
            while (reader.Read())  
            {  
                var subs = reader["ID"];  
  
                // how to create individual files from each result  


Что я уже пробовал:

я полностью потерян и у меня нет никаких идей о том, как этого достичь

ZurdoDev

Просто погуглите, Как писать в текстовый файл с помощью c#. Тонны примеров в интернете.

2 Ответов

Рейтинг:
2

Member 14809249

большое спасибо, Мадмыч. Я нашел рабочее решение благодаря вашему руководству

// Added variable to store the directory location
            string folderPath = @"C:\Users\travi\Desktop\customers\Active";

            string[] filePaths = Directory.GetFiles(folderPath); // edited to use the folderPath variable

            foreach (string filePath in filePaths) { File.Delete(filePath); }

            string serverIp = "localhost";
            string username = "root";
            string password = "";
            string databaseName = "teste";

            string dbConnectionString = string.Format("server={0};uid={1};pwd={2};database={3};", serverIp, username, password, databaseName);
            string query = "SELECT ID FROM `wp_posts` WHERE `post_type` = 'shop_subscription' and post_status = 'wc-active'";

            var conn = new MySql.Data.MySqlClient.MySqlConnection(dbConnectionString);
            conn.Open();
            var cmd = new MySql.Data.MySqlClient.MySqlCommand(query, conn);
            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                var subs = reader["ID"];

                var NewFilename = Path.Combine(folderPath, subs.ToString());
                using (StreamWriter sw = File.CreateText(NewFilename +".mcc"));


Рейтинг:
1

MadMyche

Их метод находится внутри File класс, который может создавать текстовые файлы.

Файл.Метод CreateText(String)
Создает или открывает файл для записи текста в кодировке UTF-8. Если файл уже существует, его содержимое перезаписывается.
Ссылка:
Microsoft Docs => файл.Метод CreateText(String) [^]

Вот как я бы начал добавлять его в то, что вы получили
// Added variable to store the directory location
string folderPath = @"C:\Users\travi\Desktop\customers\Active";

string[] filePaths = Directory.GetFiles(folderPath); // edited to use the folderPath variable

foreach (string filePath in filePaths) { File.Delete(filePath); }

string serverIp = "localhost";
string username = "root";
string password = "";
string databaseName = "teste";

string dbConnectionString = string.Format("server={0};uid={1};pwd={2};database={3};", serverIp, username, password, databaseName);
string query = "SELECT ID FROM `wp_posts` WHERE `post_type` = 'shop_subscription' and post_status = 'wc-active'";

var conn = new MySql.Data.MySqlClient.MySqlConnection(dbConnectionString);
conn.Open();
	var cmd = new MySql.Data.MySqlClient.MySqlCommand(query, conn);
	var reader = cmd.ExecuteReader();
	while (reader.Read()) {
		var subs = reader["ID"];

		// var NewFilename = combine folderPath & subs
		// USE block for streamwriter to create new file with NewFilename
			// add text if needed
		// end of USE block will close file
	}


Patrice T

S2-это также сообщение для вас.