Member 13336443 Ответов: 1

Как я могу хранить изображения в таблицах базы данных? Я создал таблицу, поэтому хочу хранить там изображения.


Я сохранил несколько изображений в папке "Изображения"в обозревателе решений.
Мой код выглядит следующим образом (код за файлом) -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.IO;

namespace Shop
{
    
    public partial class addimage : System.Web.UI.Page
    {
        SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\Sayan\\Documents\\Saanvi.mdf;Integrated Security=True;Connect Timeout=30");
        protected void Page_Load(object sender, EventArgs e)
        {

        }


protected void Buttonuploadimage_Click(object sender, EventArgs e)
        {
            FileUpload f = new FileUpload();
            if (f.HasFile)
            {
                string str = f.FileName;
                f.PostedFile.SaveAs(Server.MapPath(".") + "//Images//" + str);
                string path = "~//Images//" + str.ToString();
                con.Open();
                SqlCommand cmd=new SqlCommand("Insert into Images values('" + path + "')", con);
                cmd.ExecuteNonQuery();
                con.Close();
                Labeluploadimage.Text = "Image uploaded successfully";
            }
            else
            {
                Labeluploadimage.Text = "Pls. upload an image";
            }

После размещения точки останова &" debug "я увидел, что f.HasFile показывает"False".

Мой исходный файл выглядит следующим образом -

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="addimage.aspx.cs" Inherits="Shop.addimage" %>

<!DOCTYPE html>
    <title>
    
        .auto-style1 {
            width: 100%;
        }
        .auto-style2 {
            width: 127px;}
    
    <div>
    </div>
        <table class="auto-style1"><tbody><tr><td class="auto-style2">Upload</td><td>
                    <asp:FileUpload ID="imageupload" runat="server" visible="true" EnableViewState="False" />                    
                </td></tr><tr><td class="auto-style2"> </td><td>
                    <asp:Button ID="Buttonuploadimage" runat="server" OnClick="Buttonuploadimage_Click" Text="Upload Image" OnDataBinding="Buttonuploadimage_Click" />
                </td></tr><tr><td class="auto-style2"> </td><td> </td></tr><tr><td class="auto-style2">
                    <asp:Label ID="Labeluploadimage" runat="server">
                </td><td> </td></tr></tbody></table>
         <asp:GridView ID="GridViewimageupload" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">
            <AlternatingRowStyle BackColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#EFF3FB" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#F5F7FB" />
            <SortedAscendingHeaderStyle BackColor="#6D95E1" />
            <SortedDescendingCellStyle BackColor="#E9EBEF" />
            <SortedDescendingHeaderStyle BackColor="#4870BE" />

Краткое изложение проблем -

1. изображение не загружается, когда я запускаю страницу в браузере. Вместо этого он говорит: "файл не выбран". Поэтому я понимаю, что условие if не выполняется, даже если я выбираю изображение. Выполняется только другая часть.

2. я не могу сохранить изображение в таблице базы данных.

Что я уже пробовал:

Я попробовал следующий код на C#, чтобы загрузить изображения, а затем сохранить их в таблице базы данных.

1 Ответов

Рейтинг:
1

P_Z

Привет, вы должны преобразовать изображение в byte[] в C# (что эквивалентно varbinary (max) для sqlserver), если вы хотите сохранить изображение в базе данных.
Или, как показывает ваш код...сохраните путь к файлу и извлеките файл из файловой системы.