2012-10-16 58 views

回答

0

編寫一個簡單的應用程序:

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(); 
     } 
    } 
+0

感謝您的回覆,我應該在應用程序中編寫此代碼?在我的HomeController?在一個獨特的類?還有一件事......你能簡單地解釋一下這行嗎?(sr.Peek()!= -1)''主要是'!= -1'只是爲了知道 – Alternative

+0

更新的答案,如果你想填充一次,創建一個簡單的winform應用程序,並在點擊按鈕時執行代碼,但如果你想每次用戶訪問你的網站時更新你的數據庫,那麼它應該在你的控制器中的操作方法 –

+0

好吧,我只想填充它一次。所以我用這段代碼創建了一個新的項目winform到我的解決方案中,它會起作用嗎?我會盡力回到這裏說出它是否有效。再次感謝 – Alternative

0

您還可以使用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' 
) 
+0

我會問以前的答案,我必須在這裏寫這個查詢?直接在Visual Studio(對我的數據庫,新的查詢等權利clic)或在我的代碼應用程序的某個地方? – Alternative

+0

@替代你想要達到的性質是我想的問題。如果你想做一個維護類的事情,那麼你使用SQL SERVER查詢控制檯等。您可以創建一個腳本,包括BULK INSERT語句,並在Windows中使用任務計劃程序。或者,如果您/您的用戶要將包含生成/接收的數據的文件導入到文本文件中,則應使用上述應用程序代碼。您可以在Visual Studio中的應用程序中添加此查詢,但我不確定。 –

相關問題