这是我的BottomSave我有两个表Employee和Contract,主键是Enumber。
将数据添加到表员工中
但是在将数据添加到表合同中但没有添加
因为我的主键。在插入合同时有什么问题吗?
MySQL connect = new MySQL();
connect.Connection_Today();
SqlCommand cmd = new SqlCommand();
cmd.Connection = MySQL.con;
// Adding data to table Employee from database
cmd.CommandText = "Insert into Employee(Enumber,Inumber,Pnumber,Fname,Mname,Sname,Age,Bdate,Gender,Mstatus,Nationality,Eaddress,Cnumber,Picture) Values (@Enumber,@Inumber,@Pnumber,@Fname,@Mname,@Sname,@Age,@Bdate,@Gender,@Mstatus,@Nationality,@Eaddress,@Cnumber,@Picture)";
cmd.Parameters.AddWithValue("@Enumber", txtEnumber.Text);
cmd.Parameters.AddWithValue("@Inumber", txtInumber.Text);
cmd.Parameters.AddWithValue("@Pnumber", txtPassport.Text);
cmd.Parameters.AddWithValue("@Fname", txtPassport.Text);
cmd.Parameters.AddWithValue("@Mname", txtMname.Text);
cmd.Parameters.AddWithValue("@Sname", txtSname.Text);
cmd.Parameters.AddWithValue("@Age", txtAge.Text);
cmd.Parameters.AddWithValue("@Bdate", DtpBdate.Text);
cmd.Parameters.AddWithValue("@Gender", cbGender.Text);
cmd.Parameters.AddWithValue("@Mstatus", cbMstatus.Text);
cmd.Parameters.AddWithValue("@Nationality", txtNationality.Text);
cmd.Parameters.AddWithValue("@Eaddress", txtEAddress.Text);
cmd.Parameters.AddWithValue("@Cnumber", txtCnumber.Text);
cmd.Parameters.AddWithValue("@Picture", ImageToBase64(PbImage.Image,System.Drawing.Imaging.ImageFormat.Jpeg));
cmd.ExecuteNonQuery();
// Adding data to table Contract from database
cmd.CommandText = "Insert into Contract(Enumber,Position,Salary,CDuration,Scontract,Econtract) Values(@Enumber,@Position,@Salary,@CDuration,@Scontract,@Econtract)";
cmd.Parameters.AddWithValue("@Enumber", txtEnumber.Text);
cmd.Parameters.AddWithValue("@Position", txtPosition.Text);
cmd.Parameters.AddWithValue("@Salary", txtSalary.Text);
cmd.Parameters.AddWithValue("@CDuration", txtCDuration.Text);
cmd.Parameters.AddWithValue("@Scontract", dtpStart.Text);
cmd.Parameters.AddWithValue("@Econtract", dtpEnd.Text);
cmd.ExecuteNonQuery();
connect.Disconnect();
答案 0 :(得分:2)
您需要先使用SqlParameterCollection.Clear
method清除参数,然后再将它们放入第二个查询中,因为您的命令已经具有在第一个命令中添加的参数名称。
cmd.CommandText = "Insert into Contract(Enumber,Position,Salary,CDuration,Scontract,Econtract) Values(@Enumber,@Position,@Salary,@CDuration,@Scontract,@Econtract)";
cmd.Parameters.Clear();
...
还可以使用using
语句自动处理您的连接和命令,而不是手动调用Close
或Dispose
方法。
using(var con = new SqlConnection(conString))
using(var cmd = con.CreateCommand())
{
// Set your CommandText property of your command with parameters.
// Add your parameters values.
// Open your connection
// Execute your query
// Set your second command to your CommandText property
// Clear your parameters.
// Add new parameter values.
// Execute your second query.
}
顺便说一下,尽量不要AddWithValue
使用knnFit <- train(Direction ~ ., data = training, method = "knn",
preProcess = c("center","scale"))
。 It may generate unexpected and surprising results sometimes。使用Add
method重载来指定参数类型及其大小。