как извлечь двоичное изображение из базы данных в vb.net и вставить изображение в виде сетки - PullRequest
1 голос
/ 03 сентября 2011

Как извлечь двоичное изображение из базы данных, используя vb.net, и вставить изображение в GridView.

Это мое изображение DB

(id как целое число, img как varbinary (макс))

1 Ответ

0 голосов
/ 03 сентября 2011

Пока вы поясняете тип gridview, на который вы ссылаетесь, вот как вставить данные в базу данных:

Using c As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
   c.Open()
   Dim command = New SqlCommand("INSERT INTO yourtable(image) values (@image)", c)
   ' this is specific to the FileUploadControl but the idea is to get the
   'image in a byte array; however you do it, it doesn't matter
    Dim buffer(FileUpload1.PostedFile.ContentLength) As Byte
    FileUpload1.PostedFile.InputStream.Read(buffer, 0, buffer.Length)
    command.Parameters.AddWithValue("@image", buffer)
    command.ExecuteNonQuery()    
End Using

И если вы говорите о приложении ASP .NET, вы можете связатьДанные для таблицы отображаются следующим образом:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="id" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                     <!--Trick to encode the bytes as a BASE64 string-->
                    <img width="100px" height="100px" src='data:image/png;base64,<%#System.Convert.ToBase64String(Eval("image"))%>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="Data Source=Your_ConnectionString_GoesHere" 
            ProviderName="System.Data.SqlClient" 
            SelectCommand="SELECT [id], [image] FROM [your_table_name_goes_here]">
        </asp:SqlDataSource>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...