C# 将文件从Gridview上载到数据库asp.net
Grid view具有文件上载功能,可将图像上载到SQL Server数据库。但是,在控制文件上载实体时,它给出了一个错误“对象引用未设置为对象的实例” 请帮助我找到问题,或者给我一些方法来实现将图像从网格视图上传到数据库的问题 代码文件C# 将文件从Gridview上载到数据库asp.net,c#,asp.net,gridview,file-upload,C#,Asp.net,Gridview,File Upload,Grid view具有文件上载功能,可将图像上载到SQL Server数据库。但是,在控制文件上载实体时,它给出了一个错误“对象引用未设置为对象的实例” 请帮助我找到问题,或者给我一些方法来实现将图像从网格视图上传到数据库的问题 代码文件 if (e.CommandName == "upload") { string status = ""; Button bt = (Button)e.CommandSo
if (e.CommandName == "upload")
{
string status = "";
Button bt = (Button)e.CommandSource;
GridViewRow grdRow = (GridViewRow)bt.Parent.Parent;
TextBox amount = (TextBox)grdRow.Cells[0].FindControl("txtAmount");
FileUpload doc = (FileUpload)grdRow.Cells[0].FindControl("passbookUpload");
// FileUpload doc = (FileUpload)grdRow.Cells[0].FindControl("FileUpload");
Label UdiseCode = (Label)grdRow.Cells[0].FindControl("lblUdiseCode");
Label Remaining = (Label)grdRow.Cells[0].FindControl("lblremainingName");
if (string.IsNullOrEmpty(amount.Text.Trim())
|| string.IsNullOrEmpty(doc.ToString())
)
{
amount.BorderColor = System.Drawing.Color.Red;
doc.BorderColor = System.Drawing.Color.Red;
// box8.BorderColor = System.Drawing.Color.Red;
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('abc')", true);
return;
}
else
{
string filename = Path.GetFileName(doc.PostedFile.FileName);
string fileExtension = Path.GetExtension(filename);
int fileSize = doc.PostedFile.ContentLength;
if (!(fileExtension.ToLower() == ".png") || (fileExtension.ToLower() == ".jpeg")
|| (fileExtension.ToLower() == ".bmp") || (fileExtension.ToLower() == ".gif")
|| (fileExtension.ToLower() == ""))
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('abc2|')", true);
doc.BorderColor = System.Drawing.Color.Red;
return;
}
Stream stream = doc.PostedFile.InputStream;
BinaryReader binaryReader = new BinaryReader(stream);
Byte[] imageData = binaryReader.ReadBytes((int)stream.Length);
DL_Reimbursement.SaveReimbursementAmount(ddlSession.SelectedValue.ToString(), ddldistrict.SelectedValue.ToString(), ddlBlock.SelectedValue.ToString(), UdiseCode.ToString(), Convert.ToInt32(Remaining), Convert.ToInt32(amount), imageData, out status);
if (status == "INS")
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('abc3')", true);
}
else
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('कृपया डाटा को जांच ले तथा दोबारा प्रयास करे!|')", true);
}
}
}
网格的aspx文件
<asp:GridView ID="gvFetchRecords" runat="server" AutoGenerateColumns="False" HeaderStyle-Font-Bold="true" OnRowDataBound="gvFetchRecords_RowDataBound" OnRowCommand="GVBankAccDetails_RowCommand"
EmptyDataText="No Report Detail(s) were found !" PageSize="1000" AllowPaging="true">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<%#Container.DataItemIndex +1 %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Udise Code" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblUdiseCode" runat="server" Text='<%#Eval("Udise_Code") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="School Name" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblUdiseName" runat="server" Text='<%#Eval("School_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="baaki rashi" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblremainingName" runat="server" Text='<%#Eval("Remaining") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Rashi added" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:TextBox ID="txtAmount" runat="server" Style="Width: 130px;"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Document Upload" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:FileUpload ID="passbookUpload" runat="server"></asp:FileUpload>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="सुरक्षित करे" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Button ID="btnSave" runat="server" CssClass="govBtnS" Text="सुरक्षित करे" CommandName="upload" Style="Width: 100px;" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="डाउनलोड करे" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="lblDownload" runat="server" Text="डाउनलोड करे" CommandName="download" ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Status" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server" Text='<%#Eval("IsUpdated") %>' Visible="false"></asp:Label>
<asp:Image ID="gvImage" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
尝试更改文件上载ID的名称。有时可能会产生问题您调试代码了吗?代码中的哪一行引发异常?字符串filename=Path.GetFileName(doc.PostedFile.filename);这一行抛出了一个错误。调试此行时:FileUpload doc=(FileUpload)grdRow.Cells[0].FindControl(“passbookUpload”);它也没有显示任何内容,可能是控制问题。剩余变量获取相应的值expect file upload type variableFileUpload doc=(FileUpload)grdRow.Cells[0]。FindControl(“passbookUpload”)
将抛出错误,因为passbookUpload
不在单元格[0]
中。我想它在单元格[5]
中。这样你也需要检查其他控件。。。您正在对所有控件使用单元格[0]
。。。但并非所有这些都在单元格[0]
中。您需要使用适当的单元格索引器来获取适当的控件。我还将其更改为单元格[5],但它仍然显示相同的错误