簡體   English   中英

無法在Microsoft Access數據庫[C#]中插入數據

[英]Unable to insert Data inside Microsoft Access Database [C#]

我有一個具有以下6個字段的訪問文件:

ID, Designation, Price, Group, Weight, DeliveryTime

在我的代碼中,我首先在數據庫類內部創建了一個OleDbConnection和一個OleDbCommand。

private OleDbConnection _connection = new OleDbConnection(parameter);
private OleDbCommand _command;

之后,我執行WriteData方法。

public void WriteData(string tableName, string designation, string price, string group, string weight, string deliveryTime)
    {
        _command.Connection = _connection;
        _command.CommandText = "INSERT INTO " + 
            tableName + " (ID, Designation, Price, Group, Weight, deliveryTime) 
            VALUES (@id, @des, @price, @group, @weight, @deliveryTime)";

        _command.Parameters.AddWithValue("@id", GetNextHighestItemNumber());
        _command.Parameters.AddWithValue("@des", designation);
        _command.Parameters.AddWithValue("@price", price);
        _command.Parameters.AddWithValue("@group", group);
        _command.Parameters.AddWithValue("@weight", weight);
        _command.Parameters.AddWithValue("@deliveryTime", deliveryTime);

        OpenConnection();
        _command.ExecuteNonQuery();
        CloseConnection();

        System.Windows.Forms.MessageBox.Show("Success");
    }

但是我的數據庫中沒有新數據。 我也這樣嘗試過:

public void WriteData(string tableName, string designation, string price, string group, string weight, string deliveryTime)
    {
        _command.Connection = _connection;
        _command.CommandText = "INSERT INTO " + 
            tableName + " (ID, Designation, Price, Group, Weight, deliveryTime) 
            VALUES (?,?,?,?,?,?)";

        _command.Parameters.AddWithValue("ID", GetNextHighestItemNumber());
        _command.Parameters.AddWithValue("Designation", designation);
        _command.Parameters.AddWithValue("Price", price);
        _command.Parameters.AddWithValue("Group", group);
        _command.Parameters.AddWithValue("Weight", weight);
        _command.Parameters.AddWithValue("DeliveryTime", deliveryTime);

        OpenConnection();
        _command.ExecuteNonQuery();
        CloseConnection();

        System.Windows.Forms.MessageBox.Show("Success");
    }

我會忽略什么嗎?

謝謝你的幫助!

我添加了一個新的OleDbCommand並將連接,命令和參數應用到它。

public void WriteData(string tableName, string designation, string price, string group, string weight, string deliveryTime)
{
    _command.CommandText = "INSERT INTO " + 
        tableName + " (ID, Designation, Price, Group, Weight, deliveryTime) 
        VALUES (?,?,?,?,?,?)";
    OleDbCommand addDataCommand = new OleDbCommand(_command.CommandText, _connection);     

    addDataCommand .Parameters.AddWithValue("ID", GetNextHighestItemNumber());
    addDataCommand .Parameters.AddWithValue("Designation", designation);
    addDataCommand .Parameters.AddWithValue("Price", price);
    addDataCommand .Parameters.AddWithValue("Group", group);
    addDataCommand .Parameters.AddWithValue("Weight", weight);
    addDataCommand .Parameters.AddWithValue("DeliveryTime", deliveryTime);

    OpenConnection();
    _command.ExecuteNonQuery();
    CloseConnection();

    System.Windows.Forms.MessageBox.Show("Success");
}

似乎您必須創建一個新命令並執行它,因為它現在正在工作。

感謝您在評論中的幫助。

暫無
暫無

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

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