Quote:
I want to know how to save a null image and retrieve it in gridview without any problem.
You can do that, by not storing anything; which you are doing. Secondly, NULL is the default value of a container, where you provide nothing.
If the content is null, then check for a null and "do not" render the image there, something like this would solve the problem and prevent the error,
if(record.Image != null) {
} else {
}
This way, you would be able to render the images only if they are available and skip them if they are not available there.
Since you want to do this in ASP.NET Web Forms controls, you would need to dynamically control when a control is rendered, and then render the control. This condition in the ASP.NET Web Forms would be something similar to the following code,
<div runat="server" visible='<%# Eval("ImageUrl") != DBNull.Value %>'>
<asp:Image runat="server" ImageUrl='<%#Eval("ImageUrl") %>' />
</div>
The code was taken from [here](https://stackoverflow.com/questions/47254842/asp-net-repeater-hide-image-controls-if-url-img-null-into-db-and-show-video-cont), change it to suit your requirement.
Lastly, I would also recommend that you do not store the images in the database. Instead try to store them in the file system and only store their names in the record.