必须声明标量变量@Id吗?

因此,我试图从数据库中获取“客户”,但出现异常


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;


HUWWW
浏览 1710回答 2
2回答

侃侃尔雅

您应该添加一个SqlParameter名称@Idcommand.CommandText = "SELECT * FROM CUSTOMER WHERE Id = @Id;";command.Parameters.Add("@Id", SqlDbType.Int32).Value = Id;
打开App,查看更多内容
随时随地看视频慕课网APP