Я использую asp.net, C# и mysql. Итак, как я могу вставить выбранное изображение из gridview в таблицу mysql? Пожалуйста, покажите мне несколько примеров.Вставить выбранное изображение из gridview в таблицу mysql
ответ
Введенные изображения будут отображаться в элементе управления GridView.
В GridView назначается обработчик событий OnRowDataBound
, который будет использоваться для отображения изображения, вставленного в базу данных MySql.
HTML
<asp:FileUpload ID="FileUpload1"
runat="server" />
<asp:Button Text="Upload"
runat="server"
OnClick="UploadFile" />
<asp:GridView ID="gvImages"
runat="server"
AutoGenerateColumns="false"
OnRowDataBound="OnRowDataBound">
<Columns>
<asp:BoundField HeaderText="File Id"
DataField="FileId" />
<asp:BoundField HeaderText="File Name"
DataField="FileName" />
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="Image1"
runat="server"
Height="80"
Width="80" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
C#
protected void UploadFile(object sender, EventArgs e)
{
string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
string contentType = FileUpload1.PostedFile.ContentType;
using (Stream fs = FileUpload1.PostedFile.InputStream)
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (MySqlConnection con = new MySqlConnection(constr))
{
string query = "INSERT INTO Files(FileName, ContentType, Content) VALUES (@FileName, @ContentType, @Content)";
using (MySqlCommand cmd = new MySqlCommand(query))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@FileName", filename);
cmd.Parameters.AddWithValue("@ContentType", contentType);
cmd.Parameters.AddWithValue("@Content", bytes);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
}
Response.Redirect(Request.Url.AbsoluteUri);
}
Вышеуказанное обработчик событий запускается на выполнение при загрузке будет нажата кнопка, он сначала преобразует файл загруженного изображения в массив BYTE, используя класс BinaryReader, а затем сохраняет Файл изображения как двоичные данные (BLOB) в базе данных MySql.
Имя файла, тип содержимого (тип MIME) и фактический файл в виде массива байтов вставляются в таблицу базы данных MySql.
Примечание: Тип содержимого (тип MIME) очень важен при загрузке файлов, поскольку он уведомляет обозреватель о типе файла.
Уже есть сетка с изображениями. Моя цель - я хочу вставить изображение, которое выбрано из моего gridview. Сначала я извлекаю, затем снова вставляю это изображение. –
Любой пример кода будет оценен по достоинству. –
@AbdujalilChuliev: Я думаю, вы можете взглянуть на [Сохранить и получить изображения BLOB из базы данных MySql в ASP.Net, C#] (http://www.aspsnippets.com/Articles/Save-and-Retrieve-BLOB-Images -из-MySql-БД-в-ASPnet-C-и-VBNet.aspx) –
Что вы попробовали? Покажите нам свои попытки. –