c# - 将对象强制转换为接口会引发异常
问题描述
我正在尝试将类转换为接口。我得到了这个例外。
我试图观察所有使用过的元素,但一切似乎都很好。
![code exception] https://i.imgur.com/twY6Bl2.png 我的 IStocarePacienti 接口代码是:
namespace DataAccess
{
public interface IStocarePacienti : IStocareFactory
{
List<Pacient> GetPacienti();
Pacient GetPacient(int id);
bool AddPacient(Pacient d);
bool UpdatePacient(Pacient d);
}
}
对于我的班级:
namespace DataAccess
{
public class AdministrarePacienti : IStocareFactory
{
private const int PRIMUL_TABEL = 0;
private const int PRIMA_LINIE = 0;
public List<Pacient> GetPacienti()
{
var result = new List<Pacient>();
var dsCompanii = SqlDBHelper.ExecuteDataSet("select * from pacienti_ac", CommandType.Text);
foreach (DataRow linieDB in dsCompanii.Tables[PRIMUL_TABEL].Rows)
{
result.Add(new Pacient(linieDB));
}
return result;
}
public Pacient GetPacient(int id)
{
Pacient result = null;
var dsCompanii = SqlDBHelper.ExecuteDataSet("select * from pacienti_ac where ID_PACIENT = :ID_PACIENT", CommandType.Text,
new OracleParameter(":ID_PACIENT", OracleDbType.Int32, id, ParameterDirection.Input));
if (dsCompanii.Tables[PRIMUL_TABEL].Rows.Count > 0)
{
DataRow linieDB = dsCompanii.Tables[PRIMUL_TABEL].Rows[PRIMA_LINIE];
result = new Pacient(linieDB);
}
return result;
}
public bool AddPacient(Pacient comp)
{
return SqlDBHelper.ExecuteNonQuery(
"INSERT INTO pacienti_ac VALUES (seq_pacienti_ac.nextval, :NUME, :PRENUME, :TELEFON, :GR_SANGUINA, :CNP, :DATA_NASTERII)", CommandType.Text,
new OracleParameter(":NUME", OracleDbType.NVarchar2, comp.Nume, ParameterDirection.Input),
new OracleParameter(":PRENUME", OracleDbType.NVarchar2, comp.Prenume, ParameterDirection.Input),
new OracleParameter(":TELEFON", OracleDbType.NVarchar2, comp.Telefon, ParameterDirection.Input),
new OracleParameter(":GR_SANGUINA", OracleDbType.NVarchar2, comp.GrSanguina, ParameterDirection.Input),
new OracleParameter(":CNP", OracleDbType.NVarchar2, comp.CNP, ParameterDirection.Input),
new OracleParameter(":DATA_NASTERII", OracleDbType.Date, comp.DataNasterii, ParameterDirection.Input));
}
public bool UpdatePacient(Pacient comp)
{
return SqlDBHelper.ExecuteNonQuery(
"UPDATE pacienti_ac set NUME = :NUME, PRENUME = :PRENUME, TELEFON = :TELEFON, GR_SANGUINA = :GR_SANGUINA, CNP = :CNP, DATA_NASTERII = :DATA_NASTERII where ID_PACIENT = :ID_PACIENT", CommandType.Text,
new OracleParameter(":NUME", OracleDbType.NVarchar2, comp.Nume, ParameterDirection.Input),
new OracleParameter(":PRENUME", OracleDbType.NVarchar2, comp.Prenume, ParameterDirection.Input),
new OracleParameter(":TELEFON", OracleDbType.NVarchar2, comp.Telefon, ParameterDirection.Input),
new OracleParameter(":GR_SANGUINA", OracleDbType.NVarchar2, comp.GrSanguina, ParameterDirection.Input),
new OracleParameter(":CNP", OracleDbType.NVarchar2, comp.CNP, ParameterDirection.Input),
new OracleParameter(":ID_PACIENT", OracleDbType.Int32, comp.IdPacient, ParameterDirection.Input));
}
}
}
我不知道我能做什么。正如我所说,一切对我来说都很好。
解决方案
推荐阅读
- python - 如何在熊猫的多列中获得对行求和的百分比?
- javascript - 使用 JavaScript 计算小时数
- python - python:CSV文件中的列表元素
- scheme - 需要一个关于要求以特定方式在列表中添加数字的家庭作业问题的提示
- c# - ViewModel 中的 XML 到 LINQ 以填充模型
- android - Parcelables 不支持默认值。Android 导航深层链接参数
- c# - SqlCommand Parameters.AddWithValue 返回 @ 而不是变量
- node.js - 浏览器返回 403 访问错误,可能由 AWS 引起
- postgresql - pg_cron 安装:没有创建 cron 表
- python - 如何在 Jupyter 笔记本的 HTML 输出中获取垂直滚动条