Это очень простая задача, но вам необходимо изучить пространство имен SqlClient и различные объекты, которыми вы располагаете.Вы можете заметить, что асинхронные методы SQL Server 2000 и более ранних версий не поддерживаются, поэтому все они будут блокироваться.
Имейте в виду, это очень схематичный пример, и я не проверял это, но этобыл бы один общий подход.
string connectionString = "<yourconnectionstringhere>";
using (SqlConnection connection = new SqlConnection(connectionString)) {
try {
connection.Open();
}
catch (System.Data.SqlClient.SqlException ex) {
// handle
return;
}
string selectCommandText = "SELECT * FROM <yourtable>";
using (SqlDataAdapter adapter = new SqlDataAdapter(selectCommandText, connection)) {
using (DataTable table = new DataTable("<yourtable>")) {
adapter.Fill(table);
StringBuilder commaDelimitedText = new StringBuilder();
commaDelimitedText.AppendLine("col1,col2,col3"); // optional if you want column names in first row
foreach (DataRow row in table.Rows) {
string value = string.Format("{0},{1},{2}", row[0], row[1], row[2]); // how you format is up to you (spaces, tabs, delimiter, etc)
commaDelimitedText.AppendLine(value);
}
File.WriteAllText("<pathhere>", commaDelimitedText.ToString());
}
}
}
Некоторые ресурсы, которые вы хотите изучить:
Я также не уверен, каковы ваши требования или почему вы должны выполнить эту задачу, но, вероятно, существует довольно много инструментов, которые уже могут сделать это длявы (если это разовая вещь), потому что это не редкая задача.