所以一切都在我的問題。我在asp.net的web應用程序,有兩個數據庫:是否可以從* .txt文件填充我* .sdf數據庫中的表格?
第一ASPNETDB.MDF
和第二MyApp.sdf
我想從外部文件填充的MyApp.sdf
表如txt文件或其他東西。
這在Visual Studio 2010中可能嗎?有沒有辦法做到這一點?
感謝很多提前
所以一切都在我的問題。我在asp.net的web應用程序,有兩個數據庫:是否可以從* .txt文件填充我* .sdf數據庫中的表格?
第一ASPNETDB.MDF
和第二MyApp.sdf
我想從外部文件填充的MyApp.sdf
表如txt文件或其他東西。
這在Visual Studio 2010中可能嗎?有沒有辦法做到這一點?
感謝很多提前
編寫一個簡單的應用程序:
using (SqlConnection sqlcnn = new SqlConnection("Data Source=myapp.sdf"))
{
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlcnn;
sqlcnn.Open();
StreamReader sr = new StreamReader(@"c:\mydir\myfile.txt");
while (sr.Peek() != -1) // check for eof (end of file)
{
String line = sr.ReadLine();
String[] values = line.Split(' '); // e.g if your values are seperated by space
sqlcmd.CommandText = String.Format("INSERT INTO tableName VALUES ({0},{1},{2})", values[0], values[1], values[2]);
sqlcmd.ExecuteNonQuery();
}
}
您還可以使用BCP -the BULK INSERT命令包括字段終止分開記錄的文件。例如:
BULK INSERT tablename
FROM 'c:\file.txt'
WITH
(
FIRSTROW = 2, // if the first row contains table field names
MAXERRORS = 0,
FIELDTERMINATOR = ',', //separator character
ROWTERMINATOR = '\n'
)
我會問以前的答案,我必須在這裏寫這個查詢?直接在Visual Studio(對我的數據庫,新的查詢等權利clic)或在我的代碼應用程序的某個地方? – Alternative
@替代你想要達到的性質是我想的問題。如果你想做一個維護類的事情,那麼你使用SQL SERVER查詢控制檯等。您可以創建一個腳本,包括BULK INSERT語句,並在Windows中使用任務計劃程序。或者,如果您/您的用戶要將包含生成/接收的數據的文件導入到文本文件中,則應使用上述應用程序代碼。您可以在Visual Studio中的應用程序中添加此查詢,但我不確定。 –
感謝您的回覆,我應該在應用程序中編寫此代碼?在我的HomeController?在一個獨特的類?還有一件事......你能簡單地解釋一下這行嗎?(sr.Peek()!= -1)''主要是'!= -1'只是爲了知道 – Alternative
更新的答案,如果你想填充一次,創建一個簡單的winform應用程序,並在點擊按鈕時執行代碼,但如果你想每次用戶訪問你的網站時更新你的數據庫,那麼它應該在你的控制器中的操作方法 –
好吧,我只想填充它一次。所以我用這段代碼創建了一個新的項目winform到我的解決方案中,它會起作用嗎?我會盡力回到這裏說出它是否有效。再次感謝 – Alternative