数据集 - 处理空异常
本文关键字:异常 处理 数据集 | 更新日期: 2023-09-27 18:30:33
你好,我有这段代码,但现在我想处理 DBnull 异常,但到目前为止我发现数据集不包含 != 操作数。
有人可以帮助我解决此空异常吗?
提前致谢
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);
}
}
不需要检查DataSet
DbNull
,因为它永远不可能。
if (dataSet != DBNull.Value)//Not required
然后使用IsNull
DataRow
方法检查空值。
为了使您的代码更加安全和清晰,我将把它写下来如下
if (dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0)
{
Datarow row = dataSet.Tables[0].Rows[0];
if(!row.IsNull("logo"))
{
Byte[] data = (Byte[])row["logo"];
MemoryStream mem = new MemoryStream(data);
pictureBox1.Image = Image.FromStream(mem);
}
else
{
//logo is null
}
}
数据集
从来都不是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。
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);
}