C# 在asp.NETC中如何用文件字节数组填充数据表#

C# 在asp.NETC中如何用文件字节数组填充数据表#,c#,asp.net,C#,Asp.net,首先,我用类型为system.byte[]的单列创建数据表,并使用FileUploader.FileByte从FileUploader插入字节数组,最后,当我想将字节数组转换为文件时,我使用file.writealbytes()在这里,我给出了使用新文件名和字节数组存储文件的路径 if (ViewState["datAdminDocument"] == null)// if data table id null { datAdminDocument = new DataTable();

首先,我用类型为
system.byte[]
的单列创建数据表,并使用
FileUploader.FileByte
FileUploader
插入字节数组,最后,当我想将字节数组转换为文件时,我使用
file.writealbytes()
在这里,我给出了使用新文件名和字节数组存储文件的路径

if (ViewState["datAdminDocument"] == null)// if data table id null
{
    datAdminDocument = new DataTable();  //add new column in data table
    datAdminDocument.Columns.Add("FileBytes", typeof(System.Byte[]));  //column for file byte array System.Byte[] is use fro byte array
    ViewState["datAdminDocument"] = datAdminDocument;// viewstate use for prevent the data in datatable 
}
else
{
    datAdminDocument = ViewState["datAdminDocument"] as DataTable;  // if data table is not null then else condition execute
}

    DataRow drow = null;// drow is a null object for datarow  
    drow = datAdminDocument.NewRow();
    drow[0] = AdminFileUpload.FileBytes;  //file byte array insert in data table row
    datAdminDocument.Rows.Add(drow);  //add row in data table
    datAdminDocument.AcceptChanges();  //change in data table
    GridAdminUploadDocument.DataSource = datAdminDocument;//data table bind with gird
    GridAdminUploadDocument.DataBind();
    ViewState["datAdminDocument"] = datAdminDocument;  // after that now i want retrive byte array form data table by using for loop
     for (i = 0; i < datAdminDocument.Rows.Count; i++)  //for loop use for retrive byte array from data table column.
    {
        File.WriteAllBytes(Server.MapPath("~/AdminDocument/a.jpg"),
            Encoding.Unicode.GetBytes(datAdminDocument.Rows[i][0].ToString().Trim());
     }  // a.jpg is a new file name
if(ViewState[“datAdminDocument”]==null)//如果数据表id为null
{
datAdminDocument=newdatatable();//在数据表中添加新列
datAdminDocument.Columns.Add(“FileBytes”,typeof(System.Byte[]);//文件字节数组系统的列。Byte[]用于字节数组
ViewState[“datAdminDocument”]=datAdminDocument;//ViewState用于阻止datatable中的数据
}
其他的
{
datAdminDocument=ViewState[“datAdminDocument”]作为DataTable;//如果数据表不为null,则执行else条件
}
DataRow drow=null;//drow是datarow的空对象
drow=datAdminDocument.NewRow();
drow[0]=AdminFileUpload.FileBytes//在数据表行中插入文件字节数组
datAdminDocument.Rows.Add(drow)//在数据表中添加行
datAdminDocument.AcceptChanges()//数据表中的更改
GridAdminUploadDocument.DataSource=数据管理文档//数据表与网格绑定
GridAdminUploadDocument.DataBind();
ViewState[“datAdminDocument”]=datAdminDocument;//之后,现在我想通过使用for循环检索字节数组表单数据表
for(i=0;i
调试代码时会发生什么?编译错误?异常?指定文件夹中的文件是传输但未打开的?您尝试打开文件的内容是什么?file.writealBytes(Server.MapPath(“~/AdminDocument/a.jpg”)、Encoding.Unicode.GetBytes(datAdminDocument.Rows[i][0]。ToString().Trim();不能使用
文件。WriteAllBytes
打开文件…从msdn
创建新文件,将指定的字节数组写入文件,然后关闭文件。如果目标文件已存在,则会覆盖该文件。