Shamim
Shamim

Reputation: 383

Image in datatable

I read image by using OpenFileDialog. Sample code is below:

openFileDialog1.ShowDialog();
if (openFileDialog1.FileName != null)
   if (picBoardImage.Image != null)
{
    picBoardImage.Image.Dispose();
}
picBoardImage.Image = Image.FromFile(openFileDialog1.FileName);

I want to store this image in datatable. How can I do that?

Upvotes: 2

Views: 29825

Answers (2)

John
John

Reputation: 56

I was actually trying to accomplish this as well. My solution actually is not that involved.

Drawing.Bitmap img = new Drawing.Bitmap("Path to image"); //Replace string with your OpenFileDialog path.

DataColumn column = new DataColumn("ImageColumn");
column.DataType = System.Type.GetType("System.Drawing.Bitmap");

//Code to add data to a cell:
DataRow row = new DataRow();
row("ImageColumn") = img;

For me this worked like a charm.

Upvotes: 2

Kirtan
Kirtan

Reputation: 21695

You can do it like this -

DataTable table = new DataTable("ImageTable"); //Create a new DataTable instance.

DataColumn column = new DataColumn("MyImage"); //Create the column.
column.DataType = System.Type.GetType("System.Byte[]"); //Type byte[] to store image bytes.
column.AllowDBNull = true;
column.Caption = "My Image";

table.Columns.Add(column); //Add the column to the table.

Then, add a new row to this table and set the value of the MyImage column.

DataRow row = table.NewRow();
row["MyImage"] = <Image byte array>;
tables.Rows.Add(row);

EDIT: You can take a look at this CodeProject article for help on converting an image to a byte array.

Upvotes: 4

Related Questions