代码如下:我想知道这里显示传入的是一个表employee,具体的各个列的参数如何传入的?
- C# code
//// Update the Employee by ID.// This method assumes that ConflictDetection is set to OverwriteValues.publicint UpdateEmployee(NorthwindEmployee employee) { if (String.IsNullOrEmpty(employee.FirstName)) thrownew ArgumentException("FirstName cannot be null or an empty string."); if (String.IsNullOrEmpty(employee.LastName)) thrownew ArgumentException("LastName cannot be null or an empty string."); if (employee.Address == null) { employee.Address = String.Empty; } if (employee.City == null) { employee.City = String.Empty; } if (employee.Region == null) { employee.Region = String.Empty; } if (employee.PostalCode == null) { employee.PostalCode = String.Empty; } SqlConnection conn = new SqlConnection(_connectionString); SqlCommand cmd = new SqlCommand("UPDATE Employees " + " SET FirstName=@FirstName, LastName=@LastName, " + " Address=@Address, City=@City, Region=@Region, " + " PostalCode=@PostalCode " + " WHERE EmployeeID=@EmployeeID", conn); cmd.Parameters.Add("@FirstName", SqlDbType.VarChar, 10).Value = employee.FirstName; cmd.Parameters.Add("@LastName", SqlDbType.VarChar, 20).Value = employee.LastName; cmd.Parameters.Add("@Address", SqlDbType.VarChar, 60).Value = employee.Address; cmd.Parameters.Add("@City", SqlDbType.VarChar, 15).Value = employee.City; cmd.Parameters.Add("@Region", SqlDbType.VarChar, 15).Value = employee.Region; cmd.Parameters.Add("@PostalCode", SqlDbType.VarChar, 10).Value = employee.PostalCode; cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = employee.EmployeeID; int result = 0; try { conn.Open(); result = cmd.ExecuteNonQuery(); } catch (SqlException e) { // Handle exception. } finally { conn.Close(); } return result; }
------解决方案--------------------------------------------------------
cmd.Parameters.Add("@...", SqlDbType.VarChar, 10).Value = 值;
------解决方案--------------------------------------------------------
cmd.Parameters.Add,这不就是传递参数吗,sql语句中带 @ 符号的都是变量