我该如何解决这个问题?为什么图像文件会出现 system.dbnull 错误?
private void Form1_Load(object sender, EventArgs e)
{
SqlDataAdapter da = new SqlDataAdapter("select * from Categories", baglantiYolu);
DataTable tablo = new DataTable();
da.Fill(tablo);
foreach (DataRow kategori in tablo.Rows)
{
Kategori k = new Kategori();
k.KategoriID = int.Parse(kategori["CategoryID"].ToString());
k.KategoriAdı = kategori["CategoryName"].ToString();
k.UrunSayisi = UrunSayisiniGetir(int.Parse(kategori["CategoryID"].ToString()));
k.Aciklama = kategori["Description"].ToString();
k.Resim = (byte[])kategori["Picture"];
listBoxKategoriler.Items.Add(k);
}
}
最佳答案
如果该列的数据库返回值为 NULL
,则在代码中转换为 DBNull.Value
。
您需要对此进行检查,因为它不会成功转换为 byte[]
。像这样:
object val = row["Pictire"];
if (val == DBNull.Value || val == null)
{
k.Resim = new byte[0];
}
else
{
k.Resim = (byte[])val;
}
您需要对所有可能为空的列进行类似的检查。
关于c# - System.DBNull 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451247/