In this example i am Uploading Images using FileUpload Control and saving or storing them in SQL Server database in ASP.NET with C# and VB.NET.
Database is having a table named Images with three columns.
1. ID Numeric Primary key with Identity Increment.
2. ImageName Varchar to store Name of Image.
3. Image Image to store image in binary format.
After uploading and saving images in database, images are displayed in GridView.
Write this code in Click Event of Upload Button
Database is having a table named Images with three columns.
1. ID Numeric Primary key with Identity Increment.
2. ImageName Varchar to store Name of Image.
3. Image Image to store image in binary format.
After uploading and saving images in database, images are displayed in GridView.
To know how to Store and Retrieve Images in Data Base using Microsoft .NET read it.
Html markup of the page look like
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtName" runat="server" Width="95px">
</asp:TextBox>
<asp:FileUpload ID="FileUpload1" runat="server"/>
<asp:Label ID="lblMessage" runat="server">
</asp:Label>
<asp:Button ID="btnUpload" runat="server"
OnClick="btnUpload_Click" Text="Upload"/>
</div>
</form>
Write this code in Click Event of Upload Button
C# Code behind
01protected void btnUpload_Click(object sender, EventArgs e)02{03 string strImageName = txtName.Text.ToString();04 if (FileUpload1.PostedFile != null && 05 FileUpload1.PostedFile.FileName != "")06 {07 byte[] imageSize = new byte08 [FileUpload1.PostedFile.ContentLength];09 HttpPostedFile uploadedImage = FileUpload1.PostedFile;10 uploadedImage.InputStream.Read11 (imageSize, 0, (int)FileUpload1.PostedFile.ContentLength);12 13 // Create SQL Connection 14 SqlConnection con = new SqlConnection();15 con.ConnectionString = ConfigurationManager.ConnectionStrings16 ["ConnectionString"].ConnectionString;17 18 // Create SQL Command 19 20 SqlCommand cmd = new SqlCommand();21 cmd.CommandText = "INSERT INTO Images(ImageName,Image)" +22 " VALUES (@ImageName,@Image)";23 cmd.CommandType = CommandType.Text;24 cmd.Connection = con;25 26 SqlParameter ImageName = new SqlParameter27 ("@ImageName", SqlDbType.VarChar, 50);28 ImageName.Value = strImageName.ToString();29 cmd.Parameters.Add(ImageName);30 31 SqlParameter UploadedImage = new SqlParameter32 ("@Image", SqlDbType.Image, imageSize.Length);33 UploadedImage.Value = imageSize;34 cmd.Parameters.Add(UploadedImage);35 con.Open();36 int result = cmd.ExecuteNonQuery();37 con.Close();38 if (result > 0)39 lblMessage.Text = "File Uploaded";40 GridView1.DataBind();41 }42}
VB.NET Code
01Protected Sub btnUpload_Click02(ByVal sender As Object, ByVal e As EventArgs)03 04 Dim strImageName As String = txtName.Text.ToString()05 If FileUpload1.PostedFile IsNot Nothing AndAlso 06 FileUpload1.PostedFile.FileName <> "" Then07 08 Dim imageSize As Byte() = New Byte09 (FileUpload1.PostedFile.ContentLength - 1) {}10 11 Dim uploadedImage__1 As HttpPostedFile = 12 FileUpload1.PostedFile13 14 uploadedImage__1.InputStream.Read(imageSize, 0, 15 CInt(FileUpload1.PostedFile.ContentLength))16 17 ' Create SQL Connection 18 Dim con As New SqlConnection()19 con.ConnectionString = 20 ConfigurationManager.ConnectionStrings21 ("ConnectionString").ConnectionString22 23 ' Create SQL Command 24 25 Dim cmd As New SqlCommand()26 cmd.CommandText = "INSERT INTO Images27 (ImageName,Image) VALUES (@ImageName,@Image)"28 cmd.CommandType = CommandType.Text29 cmd.Connection = con30 31 Dim ImageName As New SqlParameter32 ("@ImageName", SqlDbType.VarChar, 50)33 ImageName.Value = strImageName.ToString()34 cmd.Parameters.Add(ImageName)35 36 Dim UploadedImage__2 As New SqlParameter37 ("@Image", SqlDbType.Image, imageSize.Length)38 UploadedImage__2.Value = imageSize39 cmd.Parameters.Add(UploadedImage__2)40 con.Open()41 Dim result As Integer = cmd.ExecuteNonQuery()42 con.Close()43 If result > 0 Then44 lblMessage.Text = "File Uploaded"45 End If46 GridView1.DataBind()47 End If48End Sub






(1) seems to insert filename and image twice?
ReplyDelete(2) txtname.text is not populated as fileupload1.filename
(3) image data appears as a red x