簡體   English   中英

如何將150 kb(千字節)的文本文件加載到sql server 2008中?

[英]How do you load a 150 kb (kilobyte) text files into sql server 2008?

如何將150 kb的文本文件(.aspx,.cs,html等)加載到sql server 2008數據庫中。 到目前為止,我可以加載所有小於64 kb的文件。 我有兩個問題; 我如何繞過64 kb的限制,我使用的是最佳方法嗎?

謝謝您的幫助。

數據庫:

 file_length int, file_path varchar(250), file_string varchar(MAX) 
private static void Load_Files()
{
    string source = HttpContext.Current.Server.MapPath("~/website/");

    DirectoryInfo di = new DirectoryInfo(source);
    FileInfo[] files = di.GetFiles();

    foreach (FileInfo f in files)
    {
        string sourceFile = f.FullName;

        FileStream fs_reader = new FileStream(sourceFile, FileMode.Open, FileAccess.Read);
        StreamReader reader = new StreamReader(fs_reader);
        string content = reader.ReadToEnd();

        Int32 file_length = content.Length;

        string CS = ConfigurationManager.ConnectionStrings["SQL_CS"].ConnectionString;
        SqlConnection SQL_Conn_01 = new SqlConnection(CS);

        string SQL_01 = "INSERT INTO Page_File_Store (file_length, file_path, file_string) VALUES (@file_length, @file_path, @file_string)";
        SqlCommand SQL_File_Load = new SqlCommand(SQL_01, SQL_Conn_01);
        SQL_File_Load.Parameters.Add(new SqlParameter("@file_length", file_length));
        SQL_File_Load.Parameters.Add(new SqlParameter("@file_path", sourceFile));

        //SQL_File_Load.Parameters.Add(new SqlParameter("@file_string", content));

        SqlParameter contentParameter = new SqlParameter("@file_string", SqlDbType.VarChar, -1);
        contentParameter.Value = content;
        SQL_File_Load.Parameters.Add(contentParameter);

        SQL_Conn_01.Open();
        SQL_File_Load.ExecuteNonQuery();
        SQL_Conn_01.Close();

        reader.Close();
    }
}

通常,我將使用BULK INSERT T / SQL命令或BCP命令行實用程序來導入數據。 這使您可以在單個事務(或大量記錄)中加載所有數據,而不是逐行加載,因為逐行將非常慢。

您可以在C#中通過作為SQL對象一部分的大容量插入對象來執行此操作(我沒有任何方便的代碼示例,但希望有人可以為您發布一個)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM