保存&使用XML C#将datagridview中的多个图像byte []代码检索到MSSQL [英] save & retrive multiple image byte[] code in datagridview to MSSQL using XML C#
本文介绍了保存&使用XML C#将datagridview中的多个图像byte []代码检索到MSSQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在创建第一个数据表以在datagridview中保存图像。
i am creating first one data table to save images in datagridview.
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));//0
dt.Columns.Add("Upload", typeof(string));//1
dt.Columns.Add("Show", typeof(string));//2
dt.Columns.Add("image", typeof(byte[]));//3
for (int i = 0; i < dgvDemo.RowCount-1; i++)
{
DataRow drOLD = dt.NewRow();
drOLD["image"] =dgvDemo.Rows[i].Cells[3].Value;
drOLD["Name"] = dgvDemo.Rows[i].Cells[0].Value;
drOLD["Upload"] = "Upload";
drOLD["Show"] = "Show";
dt.Rows.Add(drOLD);
}
Image img = PBImage.Image; //Image.FromFile(@"physical path to the file");
DataRow dr = dt.NewRow();
dr["image"] = imageToByteArray(img);
dr["Name"] = "Image";
dr["Upload"] = "Upload";
dr["Show"] = "Show";
dt.Rows.Add(dr);
dgvDemo.DataSource = dt;
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
以下代码用于在数据库中保存图像,使用XML作为存储过程的参数
Following is code is use for save images in database using XML as parameter for Store Procedure
hash = new Hashtable();
hash.Add("@QueryNo", QueryNo);
string strXmlCategory_Section = "";
StringBuilder xmlClassMaster = new StringBuilder();
for (int k = 0; k < dgvDemo.Rows.Count-1; k++)
{
xmlClassMaster.Append("<Row>");
xmlClassMaster.Append("<Name>" + dgvDemo.Rows[k].Cells[0].Value + "</Name>");
xmlClassMaster.Append("<GridImage><cdata>" + ((byte[])dgvDemo.CurrentRow.Cells[3].Value) + "</cdata></GridImage>");
xmlClassMaster.Append("</Row>");
}
if (xmlClassMaster.Length > 0)
{
xmlClassMaster.Append("</ImageInGrid>");
strXmlCategory_Section = "<ImageInGrid>" + Convert.ToString(xmlClassMaster);
}
hash.Add("@strImageInGrid", strXmlCategory_Section);
哈希表作为参数列表传递给SP。
存储过程代码在数据库中
hash table is passing as parameter list to SP.
Store Procedure Code in Database
Exec sp_xml_prepareDocument @DocHandle_ImageInGrid output, @strImageInGrid
select Name, GridImage
into #temp
from OPENXML (@DocHandle_ImageInGrid, '/ImageInGrid/Row',12)
with (
Name varchar(50) 'Name',
GridImage varbinary(max) 'GridImage'
)
insert into dbo.GridImage
( Name, GridImage)
Select Name, GridImage
From #temp
i从数据库获取图像时遇到问题&它到网格。错误是-parameter无效。在system.drawing.image.fromstream我认为我的保存方法有误请帮助
i Have Problem in Fetch Image from database & it to Grid . error is -parameter is not valid. at system.drawing.image.fromstream i think that my save method is wrong please help
推荐答案
似乎你是对的
尝试使用 Dataset.Getxml [ ^ ]
并将其发送到Storedproc,同时根据需要更改xpath
seems you are right
try to use the Dataset.Getxml[^]
and send it to the Storedproc, also change the xpath as required
这篇关于保存&使用XML C#将datagridview中的多个图像byte []代码检索到MSSQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文