use*_*072 1 c# sql wpf null byte
我在Image
数据库表的列中有二进制映像,但列中有一些null
值Image
.所以抛出异常,
byte [] data =(byte [])ds.Tables [0] .Rows [0] [0]`因为null.
怎么办呢?
异常消息,
无法将类型为"System.DBNull"的对象强制转换为"System.Byte []".
我的代码,
using (var sqlConn = new SqlConnection(connstr))
{
sqlConn.Open();
ds = new DataSet();
SqlDataAdapter sqa = new SqlDataAdapter("Select Image from Templates where Shoe='" + selectedShoe + "'", sqlConn);
sqa.Fill(ds);
//i got error here
byte[] data = (byte[])ds.Tables[0].Rows[0][0];
.....
Run Code Online (Sandbox Code Playgroud)
DBNull
在尝试强制转换之前,您需要在该列中专门检查:
byte[] data = null;
if (!ds.Tables[0].Rows[0].IsNull(0))
data = (byte[])ds.Tables[0].Rows[0][0];
Run Code Online (Sandbox Code Playgroud)
请注意,如果相关列实际上不包含字节数组,则会因相同类型的异常而失败.