[英]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.