因此,我试图从数据库中获取“客户”,但出现异常System.Data.dll中发生类型'System.Data.SqlClient.SqlException'的异常,但未在用户代码中处理附加信息:必须声明标量变量"@Id"。 using Core; using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DatabaseAccess { public class DbCustomer { private string ConnectionString = ConfigurationManager.ConnectionStrings["local"].ConnectionString; private SqlConnection connection { get; set; } public DbCustomer() { connection = new SqlConnection(ConnectionString); } public Customer GetCustomer(int Id) { Customer customer = null; connection.Open(); using (SqlCommand command = connection.CreateCommand()) { command.CommandText = "SELECT * FROM CUSTOMER WHERE Id = @Id;"; var reader = command.ExecuteReader(); while (reader.Read()) { customer = new Customer(); customer.Id = reader.GetInt32(reader.GetOrdinal("Id")); customer.FirstName = reader.GetString(reader.GetOrdinal("FirstName")); customer.LastName = reader.GetString(reader.GetOrdinal("LastName")); customer.Address = reader.GetString(reader.GetOrdinal("Address")); } command.ExecuteNonQuery(); connection.Close(); } return customer; } } }using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.Text;using System.Threading.Tasks;
2 回答
侃侃尔雅
TA贡献1801条经验 获得超15个赞
您应该添加一个SqlParameter名称@Id
command.CommandText = "SELECT * FROM CUSTOMER WHERE Id = @Id;";
command.Parameters.Add("@Id", SqlDbType.Int32).Value = Id;
- 2 回答
- 0 关注
- 1763 浏览
添加回答
举报
0/150
提交
取消