因此,我正在尋找一種從SQL Server 2000數據庫導出數據並將其寫入逗號分隔文本文件的簡單方法。它的一張桌子,只有大約1000行。我是C#的新手,所以請原諒,如果這是一個愚蠢的問題。從SQL導出數據並寫入etxt文件(不能使用BCP或SP)
回答
在C#中,這與使用所需工具的任何其他語言無異。
1)查詢數據庫,並收集
2)收件收集CSV格式
C#對我來說是全新的......你能指點我一個可能有簡單教程的網站嗎如何做到這一點? – Dave
你在Windows窗體應用程序這樣做是爲了文件存儲數據嗎?如果您將數據綁定到控件(如DataGridView),那麼這很容易。您可以循環訪問控制並以此方式寫入文件。我喜歡這個,因爲如果你在應用程序中實現了過濾機制,無論用戶過濾了什麼,都可以寫入文件。這是我以前做過的。如果你正在使用某種收集而沒有太多麻煩,你應該可以調整它。
private void exportCsv()
{
SaveFileDialog saveFile = new SaveFileDialog();
createSaveDialog(saveFile, ".csv", "CSV (*csv)|*.csv)");
TextWriter writer = new StreamWriter(saveFile.FileName);
int row = dataGridView1.Rows.Count;
int col = dataGridView1.Columns.Count;
try
{
if (saveFile.FileName != "")
{
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
writer.Write(dataGridView1.Columns[i].HeaderText + ",");
}
writer.Write("\r\n");
for (int j = 0; j < row - 1; j++)
{
for (int k = 0; k < col - 1; k++)
{
writer.Write(dataGridView1.Rows[j].Cells[k].Value.ToString() + ",");
}
writer.Write("\r\n");
}
}
MessageBox.Show("File Sucessfully Created!", "File Saved", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
catch
{
MessageBox.Show("File could not be created.", "Save Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
writer.Close();
saveFile.Dispose();
}
}
我還沒有開始,因爲我更喜歡數據庫傢伙。 (所以沒有在Windows應用程序窗體)他們只是在這裏說...我們需要它在C#中,並需要在下週末。我喜歡學習新東西,但沒有一個地方可以開始巨大的痛苦。 – Dave
這是一個非常簡單的任務,但您需要了解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());
}
}
}
你會希望尋找到一些資源:
- SqlConnection類; http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=VS.90).aspx
- SqlDataAdapter類; http://msdn.microsoft.com/en-us/library/ds404w5w(v=VS.90).aspx
- SqlDataAdapter.Fill方法; http://msdn.microsoft.com/en-us/library/905keexk(v=VS.90).aspx
- DataTable Class; http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx
我也不清楚自己的需求是什麼,或者你爲什麼做這個任務,但也有可能是相當多的工具,有可能已經爲你做這個(如果這是一次性的事情),因爲這不是一個不常見的任務。
好的,感謝這些信息...我同意,我不確定爲什麼這會落在我的盤子上,但是我已經將它用作學習體驗。至於多久我們這樣做......幾乎從不...... – Dave
- 1. SQL Server 2005使用bcp寫入文件
- 2. 從SQL Server 2008批量導出數據到XML文件(不使用BCP)
- 3. 使用bcp將csv文件導入到sql 2005或2008
- 4. 使用BCP從SQL Server表寫入文件
- 5. SQL Server的BCP功能將不寫入文件
- 6. SQL Server BCP導出損壞的文件?
- 7. 導入.bcp文件到sql服務器
- 8. 如何從excel文件導出數據並導入到sql數據庫?
- 9. 通過BCP將SP輸出的第二個表寫入CSV文件
- 10. 爲什麼BCP導出工具用中文寫輸出文件?
- 11. 如何使用bcp實用程序將數據從xlsx導入到sql數據庫中的sql bcp實用程序-in使用xlsx(Excel)文件
- 12. 如何使用BCP或Sql Server Management Studio將BLOB數據從Sql Server中取出?
- 13. 使用BCP和隱藏路徑從SQL導出數據時出錯
- 14. 使用BCP實用程序從表中導出數據
- 15. 問題與BCP寫入.txt文件從SQL
- 16. BCP將文件夾中的所有文件導入數據庫
- 17. 從sql文件導入數據到Oracle使用sql
- 18. Oracle sp不能使用數據整數
- 19. 我不能導入文本數據文件導入SQL Server 2008中使用導入嚮導
- 20. 從sql文件導入數據庫
- 21. 導入和導出.csv文件使用C#asp.net將數據導入SQL Server
- 22. 寫入CSV文件並將其導出?
- 23. 導出表使用bcp
- 24. 如何緩衝BCP輸出而不是寫入文件
- 25. 通過Rails將數據從SQL文件或Excel文件導入數據庫
- 26. 從C#導出SQL Server數據庫並重新導入
- 27. 數據不能寫入excel文件
- 28. 使用bcp實用程序將SQL查詢導出到文本文件
- 29. 使用BCP從SQL Server 2000導出圖像列
- 30. bcp導入數據爲基數256?
也許嘗試搜索示例並返回一個特定的問題。這顯示沒有任何想法。 – ChrisBint
我查找了一些示例,所有出現的問題都與Store procs,xp_cmdshell/BCP甚至SSIS/SSRS有關。 我知道如何通過BCP來做到這一點,但對於我來說,當我談到C#時,我不知所措了C# – Dave