您好我有这段代码,但现在我想处理DBnull异常,但是到目前为止我发现DataSet不包含!=操作数。
有人可以帮我解决这个空例外吗?
提前致谢
SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand(
"SELECT logo FROM firma WHERE id = 1", spojeni));
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
if (dataSet != DBNull.Value)
{
if (dataSet.Tables[0].Rows.Count == 1)
{
Byte[] data = new Byte[0];
data = (Byte[])(dataSet.Tables[0].Rows[0]["logo"]);
MemoryStream mem = new MemoryStream(data);
pictureBox1.Image = Image.FromStream(mem);
}
}
答案 0 :(得分:1)
DataSet绝不是DBNull。但是,数据集中的值可以是DBNull。您应该检查值的DBNull:
dataAdapter.Fill(dataSet);
if (dataSet.Tables[0].Rows.Count == 1)
{
Byte[] data = new Byte[0];
object o = dataSet.Tables[0].Rows[0]["logo"]
if (! DBNull.Value.Equals(o)) {
data = (Byte[])();
MemoryStream mem = new MemoryStream(data);
pictureBox1.Image = Image.FromStream(mem);
} else {
throw new NoLogoImageFoundException("Please remember to upload the logo");
}
}
有关DBNull
的详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.dbnull.value.aspx。
答案 1 :(得分:1)
不需要检查DataSet
DbNull
,因为它不可能。
if (dataSet != DBNull.Value)//Not required
然后使用IsNull
的{{1}}方法检查null。
为了使您的代码更加安全和清晰,我会将其写下来,如下所示
DataRow
答案 2 :(得分:0)
if (dataSet.Tables[0].Rows[0]["logo"].ToString()!= null )
{
Byte[] data = new Byte[0];
data = (Byte[])(dataSet.Tables[0].Rows[0]["logo"]);
MemoryStream mem = new MemoryStream(data);
pictureBox1.Image = Image.FromStream(mem);
}