在这里遇到了问题。希望你能帮忙:D
我正在创建的软件管理简单的电影信息,特别是这种形式应该编辑给定电影的数据。 通过下面的代码,将使用从DB收集的数据填充表单。 (“电影院”是一个全球宣布的数据集)。
public short popolaModificaFilm(string titolo, ref TextBox txtAnno, ref TextBox txtCast, ref TextBox txtDurata, ref TextBox txtLocandina, ref TextBox txtRegista, ref TextBox txtTitolo, ref TextBox txtTrailer, ref TextBox txtTrama, ref ComboBox cmbGenere, ref ComboBox cmbNaz, ref CheckBox chkPellicola, ref CheckBox chkDigitale, ref CheckBox chk3d)
{
service.ricercaFilm(titolo).CopyToDataTable(cinema.film, LoadOption.PreserveChanges);
dsCinema.filmRow film = cinema.film[0];
txtAnno.Text = film["anno"].ToString().Trim();
txtCast.Text = film["cast"].ToString().Trim();
txtDurata.Text = film["durata"].ToString().Trim();
txtLocandina.Text = film["locandina"].ToString().Trim();
txtRegista.Text = film["regista"].ToString().Trim();
txtTitolo.Text = film["titolo"].ToString().Trim();
txtTrailer.Text = film["trailer"].ToString().Trim();
txtTrama.Text = film["trama"].ToString().Trim();
inserisciFilmCombo(ref cmbGenere,ref cmbNaz);
cmbGenere.SelectedValue = film["genere"];
cmbNaz.SelectedValue = film["nazionalita"];
if ((bool)film["pellicola"])
{
chkPellicola.Checked = true;
}
if ((bool)film["digitale"])
{
chkDigitale.Checked = true;
}
if ((bool)film["tridimensionale"])
{
chk3d.Checked = true;
}
return short.Parse(film["id"].ToString());
}
通过另一个按钮,用户可以更新(在数据集中)信息。 这是方法:
public void aggiornaFilm(short id, string titolo, string regista, string cast, int anno, int durata, string trama, string trailer, string genere, string nazionalita, string locandina, bool pellicola, bool digitale, bool tridimensionale)
{
dsCinema.filmRow film = cinema.film.FindByid(id);
if (!titolo.Equals(""))
{ film["titolo"] = titolo; }
if (!regista.Equals(""))
{ film["regista"] = regista; }
if (!cast.Equals(""))
{ film["cast"] = cast; }
if (!trama.Equals(""))
{ film["trama"] = trama; }
if (!trailer.Equals(""))
{ film["trailer"] = trailer; }
if (!genere.Equals(""))
{ film["genere"] = genere; }
if (!locandina.Equals(""))
{ film["locandina"] = locandina; }
if (!anno.ToString().Equals(""))
{ film["anno"] = anno; }
if (!nazionalita.Equals(""))
{ film["nazionalita"] = nazionalita; }
if (!durata.ToString().Equals(""))
{ film["durata"] = durata; }
film["pellicola"] = pellicola;
film["digitale"] = digitale;
film["tridimensionale"] = tridimensionale;
}
当我尝试使用这些函数时,Visul Studio吐出了以下异常:
System.NullReferenceException未处理 Message =“对象引用未设置为对象的实例。” 源= “BusinessLogicalLayer”
我注意到数据集(在“aggiornaFilm”的开头)是空的(所以显然你的find方法返回null)尽管我已经通过“popolaModificaFilm”注入了数据。 方法(aggiornaFilm& popolaModificaFilm)都在同一个类中,并以相同的形式调用。
Tnx寻求任何帮助,抱歉我的英语不好。
答案 0 :(得分:0)
您的服务对象似乎无法正确返回数据。 您应该检查服务是否正确运行。
答案 1 :(得分:0)
是空的还是空的? 电影是空的吗?
您正在访问某些内容(使用点运算符),但该点的左侧为空 - 因此抛出此异常。
逐步执行代码以查找抛出异常的确切行并查看错误。
(即使不是在这门课程中,而是在你正在打电话的服务中) - 调试员是你的朋友