簡體   English   中英

參數@BranchName沒有默認值

[英]Parameter @BranchName has no default value

我正在嘗試為我辦公室的計算機部門開發庫存控制系統。 它將跟蹤分支機構的機器進出情況,這些分支機構將被送往總部進行維修。 我還將使用水晶報表顯示Microsoft Access 2010中的所有記錄。單擊輸入表單的保存按鈕時,會彈出此錯誤消息框。

(參數@BranchName沒有默認值)

我將Microsoft Access 2010和C#.NET與VS 2010結合使用。請幫助我。

    private void btnSave_Click(object sender, EventArgs e)
    {
        {
            OleDbConnection connect = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\NLA\Documents\Visual Studio 2010\Projects\GlobalTreasureBank\GlobalTreasureBank\GTBDB.accdb;Jet OLEDB:Database Password=admin@GTB");
                try
                {
                    connect.Open();
                    OleDbCommand command = new OleDbCommand();
                    command.Connection=connect;
                    command.CommandText= "INSERT INTO Machine (BranchName, MachineName, ArrivedDate, FaultDetail, ReturnDate, Remark, Technician)" + "VALUES (@BranchName, @MachineName, @ArrivedDate, @FaultDetail, @ReturnDate, @Remark, @Technician)";

                    string BranchName = txtbBranch.Text;
                    string MachineName = txtbMachine.Text;
                    string FaultDetail = rtxtbFault.Text;
                    string Remark = rtxtbRemark.Text;
                    string Technician = txtbTechnician.Text;
                    DateTime ArrivedDate = dtpArrive.Value;
                    DateTime ReturnDate = dtpReturn.Value;

                    command.Parameters.Add("ArrivedDate", OleDbType.Date);
                    command.Parameters.Add("ReturnDate", OleDbType.Date);

                    command.Parameters.AddWithValue("@BranchName", txtbBranch.Text);
                    command.Parameters.AddWithValue("@MachineName", txtbMachine.Text);
                    command.Parameters.AddWithValue("@FaultDetail", rtxtbFault.Text);
                    command.Parameters.AddWithValue("@Remark", rtxtbRemark.Text);
                    command.Parameters.AddWithValue("@Technician", txtbTechnician.Text);
                    command.Parameters.AddWithValue("@ArrivedDate", dtpArrive.Value);
                    command.Parameters.AddWithValue("@ReturnDate", dtpReturn.Value);

                    command.ExecuteNonQuery();
                    MessageBox.Show ("Successfully write to database", "Write to Database", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    connect.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    connect.Close();
                }
            }
        }
    }
}

注1: OleDB不接受named parameters
注2: OleDB參數需要按順序排列。

嘗試這個:

command.CommandText= "INSERT INTO Machine (BranchName, MachineName, ArrivedDate, 
   FaultDetail, ReturnDate, Remark, Technician) VALUES (?,?,?,?,?,?,?)";


command.Parameters.AddWithValue("@BranchName", txtbBranch.Text);
command.Parameters.AddWithValue("@MachineName", txtbMachine.Text);
command.Parameters.AddWithValue("@ArrivedDate", dtpArrive.Value);
command.Parameters.AddWithValue("@FaultDetail", rtxtbFault.Text);
command.Parameters.AddWithValue("@ReturnDate", dtpReturn.Value);
command.Parameters.AddWithValue("@Remark", rtxtbRemark.Text);
command.Parameters.AddWithValue("@Technician", txtbTechnician.Text);

暫無
暫無

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

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