none
vs2008 c#[利用程式將記事本txt的內容存回資料庫]? RRS feed

  • 問題

  • 我的資料庫有3個欄位..前2個不能為null ..欄位名稱跟大小分別為

     (num varchar(10),name varchar(20) ,ps varchar(100))

    假如我要把記事本的資料 ex: 01 臺灣 02 日本 03 韓國 (中間以空白格開)

    分別存入資料庫的第一欄位(num)跟第2欄位(name)

    部份程式碼如下

    OpenFileDialog zx = new OpenFileDialog();
    if (zx.ShowDialog() == DialogResult.OK)
    {                
    string str = System.IO.File.ReadAllText(zx.FileName,     System.Text.ASCIIEncoding.Default);
    object[] back = CliUtils.CallMethod("xxxx", "Ixxxx", new object[] { str });
    MessageBox.Show(back[1].ToString());
    }

    我在開txt匯入時會出現錯誤"索引和長度需參考字串的位置length"

    可是資料庫大小看起來是足夠的..請問哪邊需要更改呢?

    2010年7月28日 上午 08:45

解答

所有回覆

  • 請問,程式發生錯誤是在哪一行呢?

    由於我們並沒有 CliUtils.CallMethod 的原始碼,無法了解錯誤的始末。

    另外,試著改成下面的方法來讀取檔案看看

    System.IO.File.ReadAllText(zx.FileName, System.Text.Encoding.Default);
    2010年7月28日 上午 09:11
  • 搜尋程式碼裡面有沒有substring

    • 已標示為解答 night-mind 2010年7月30日 上午 03:15
    2010年7月28日 上午 09:28
  • 您可以利用讀取資料庫的技巧讀取Text File的內容, 再寫入資料庫, 請參考:

    Importing CSV Data and saving it in database

    2010年7月29日 上午 03:09
  • 有下面這些..只挑一個出來

    P1.ParameterName = "xxxx";
    P1.Value = vs[i].Substring(1, 3).Trim();

    P1.ParameterName = "xxxx";
    P1.Value = vs[i].Substring(4, 4).Trim();

    P1.ParameterName = "xxxx";
    P1.Value = vs[i].Substring(7, 5).Trim();

     

    (1.3)的意思不是從記事本第一個位置往後數3的字元嗎?

    ex:01_345_789__(底線代表空白)

    可是還是會錯誤

    2010年7月30日 上午 01:02
  • vs[i]  <--  這個是在跑迴圈嗎?進偵錯模式去看它的長度夠不夠你用SubString

    2010年7月30日 上午 01:26
  • 我已經解決問題了...感謝各位大大回答...

    應該只是字元對錯而已...因為空白數不太好算

    2010年7月30日 上午 03:13