C# 从SQL Server数据库获取信息

C# 从SQL Server数据库获取信息,c#,sql-server,C#,Sql Server,请告诉我reader变量的数据类型应该是什么 public Patient GetPatientInfo(string ID) { const string sql_get_patient_info = "Select * from dbo.Tb_Patient WHERE id=@ID"; Patient _p = new Patient(); DbCommand readCommand = _db.GetSqlStringCommand(sql_

请告诉我reader变量的数据类型应该是什么

  public Patient GetPatientInfo(string ID)
  {
      const string sql_get_patient_info = "Select * from dbo.Tb_Patient WHERE id=@ID";
      Patient _p = new Patient();

      DbCommand readCommand = _db.GetSqlStringCommand(sql_get_patient_info);
      SqlDataReader reader = readCommand.ExecuteReader();

      while (reader.Read())
      {
           _p.PatientName = reader["Name"].ToString();
          _p.PatientDate = reader["Date"];
          _p.PatientGender = reader["Gender"].ToString();
          _p.PatientAge = reader["Age"].ToString();
          _p.PatientContact = reader["Contact"].ToString();
          _p.PatientOccupation = reader["Occupation"].ToString();
      }
      return _p;
  }

因为您使用的是DbCommand类,所以调用

DbDataReader reader = readCommand.ExecuteDbDataReader();

我相信您可以使用:IDataReader reader=readCommand.ExecuteReader();还请告诉我_p.PatientDate=reader[“Date”]有什么问题;语句?因为PatientDate有DateTime数据类型,Date列也有。无法将类型“object”隐式转换为“System.DateTime”。@SidraAbbasi可能需要使用DateTime.Parse()?但是读取器[“Data”]返回一个对象,并且对象和DateTime之间没有直接转换。因为您确定对象始终是日期,并且它从不为空,所以调用
Convert.ToDateTime(reader[“Data”])