簡體   English   中英

C#:將字符串數組中的數據輸入到MS Access DB表中

[英]C#: Input data from string array into MS Access DB Table

我盡可能多地搜索,找不到任何可以幫助我的東西。 所以我所擁有的是一個腳本,它讀取/拆分並將.txt文件中的數據存儲到某些數組中。 (這里列出的是Vndnbr)。 我遇到的問題是如何將數組中的每個條目作為MS Access表中列下的條目輸入? 這是我到目前為止:

public void AddToDatabase()
{
    OleDbCommand command;
    OleDbConnection connection =
        new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;" +
                            "Data Source=filepath");
    foreach (string x in Vndnbr)
    {
        cmdstringVND[k] = "insert into Table1 (Vndnbr) Values (x)";
        k++;
        command = OleDbCommand(cmdstringVND[k],connection);
    }

    command.Parameters.AddWithValue("?", ReadFromFile("filepath"));
    connection.Open();
    command.ExecuteNonQuery();
    connection.Close();
}

我不熟悉Access庫或者應該在AddwithValue的第一個參數中插入什么,因為我只是在做了一些研究之后復制粘貼這些行。 如果有人可以幫助我如何將數組中的所有數據添加到表中,將非常感謝,謝謝。

您的代碼中存在許多錯誤

  • 在循環中,您不使用參數來存儲要插入的值
  • 你永遠不會破壞命令。 (使用新的)
  • 嘗試僅執行最后一個命令,因為ExecuteNonQuery在循環之外

     public void AddToDatabase() { string cmdText = "insert into Table1 (Vndnbr) Values (?)"; using(OleDbConnection connection = new OleDbConnection(.....)) using(OleDbCommand command = new OleDbCommand(cmdText, connection)) { connection.Open(); command.Parameters.AddWithValue("@p1", ""); foreach (string x in Vndnbr) { command.Parameters["@p1"].Value = x; command.ExecuteNonQuery(); } } } 

我已經更改了代碼以包含using語句來正確關閉和處理連接和命令,然后我在循環外部初始化了命令,傳遞了一個公共字符串作為參數占位符並使用虛擬值初始化了此參數。

在循環內部,我將前一個參數值替換為Vndnbr列表獲得的實際值並執行命令。

您需要將SQL更改為:

"insert into Table1 (Vndnbr) Values (@x)";

然后AddWithValue是這樣的:

command.Parameters.AddWithValue("@x", ReadFromFile("filepath"));

您所做的只是說,對於此參數名稱,我希望指定此值。

暫無
暫無

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

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