我想从我的网站上的SQLSEVER数据库显示图片。我的用户有一个带有图片数据类型的图片字段。如果图片列为空,那么我希望显示的图片是egg.jpg,但现在对于每个人来说,他们的图片都是egg.jpg,即使他们在数据库中有图片。这是我的方法。SQL读取器返回每一行的DBnull
public string getImageUrl()
{
System.Data.SqlClient.SqlConnection sc = new System.Data.SqlClient.SqlConnection();
sc.ConnectionString = "Server =MRCOMPUTER2\\SQLEXPRESS; Database = WBL;Trusted_Connection=Yes;";
sc.Open();
System.Data.SqlClient.SqlCommand insert = new System.Data.SqlClient.SqlCommand();
insert.Connection = sc;
insert.CommandText = "SELECT profilePicture from SystemUser";
insert.ExecuteNonQuery();
SqlDataReader reader = insert.ExecuteReader();
string url = "";
while (reader.Read())
{
if (!DBNull.Value.Equals(reader[0]))
{
url = "data:Image/png; base64," + Convert.ToBase64String((byte[])reader[0]);
}
else {
url = "images/egg.jpg";
}
}
return url;
}
为什么你选择的命令被称为 '插入'?它是否必须在db中插入一些东西?你不应该在insert.ExecuteReader();'之前调用'insert.ExecuteNonQuery();'。 –