.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Vb.net向sql server数据库中保存图片(二)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Vb.netsql server数据库中保存图片

      袁志

 

4、   声明类级的变量。找到设计期产生的代码部分,把下面的语句加到变量声明后面。什么?不知道变量声明在哪儿?不会吧!

Private fs As FileStream

    Private ds As DataSet

    Private conn As New SqlConnection("server=localhost;database=northwind;integrated security=true;")

Private currentpos As Integer = 9

 

5、   开始写代码了。首先是form_load

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

        btnOpen.Enabled = True

        btnSave.Enabled = True

        btnBack.Enabled = False

        btnForward.Enabled = False

    End Sub

6、   open按钮的点击事件代码:

  Private Sub openbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click

        Dim Opendlg As New OpenFileDialog

        Opendlg.Title = "Select a picture file"

        Opendlg.Filter = "(*.bmp)|*bmp|(*.jpg)|*.jpg"

        Opendlg.ShowDialog()

        lblPath.Text = Opendlg.FileName.ToString()

        fs = New FileStream(Opendlg.FileName.ToString(), FileMode.Open, FileAccess.Read)

        PictureBox1.Image = Image.FromFile(Opendlg.FileName.ToString())

    End Sub

7、   save按钮的点击事件代码

Private Sub savebtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click

        Dim sqlcomm As New SqlCommand

        sqlcomm.CommandText = "INSERT INTO employees (lastname,firstname,photo) VALUES (@lastname,@firstname,@photo)"

        sqlcomm.Connection = conn

        Dim Data(fs.Length) As Byte

        fs.Read(Data, 0, Int(fs.Length))

        Dim prm1 As New SqlParameter("@lastname", txtLN.Text)

        Dim prm2 As New SqlParameter("@firstname", txtFN.Text)

        Dim prm3 As New SqlParameter("@photo", SqlDbType.VarBinary, Int(fs.Length), ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Current, Data)

        sqlcomm.Parameters.Add(prm1)

        sqlcomm.Parameters.Add(prm2)

        sqlcomm.Parameters.Add(prm3)

        Try

            conn.Open()

            sqlcomm.ExecuteNonQuery() '执行插入语句

            conn.Close()

            fs.Close()

        Catch ex As Exception

            MsgBox(ex.Message)

        End Try

    End Sub

8、   选择view状态的事件代码

Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged

        If CheckBox1.Checked = True Then

            btnOpen.Enabled = False

            btnSave.Enabled = False

            btnBack.Enabled = True

            btnForward.Enabled = True

            currentpos = 9

            Dim sqlcomm As New SqlCommand

            sqlcomm.CommandText = "SELECT employeeId, photo FROM employees ORDER BY employeeId"

            sqlcomm.Connection = conn

            Dim da As New SqlDataAdapter(sqlcomm)

            Try

                conn.Open()

                ds = New DataSet

                da.Fill(ds, "employees")

                conn.Close()

            Catch sqlEx As SqlException

                MsgBox(sqlEx.Message)

            End Try

 

            Dim data() As Byte = ds.Tables("employees").Rows(9)("photo")

            Dim stmphoto As New MemoryStream(data)

            PictureBox1.Image = Image.FromStream(stmphoto)

        Else

            btnOpen.Enabled = True

            btnSave.Enabled = True

            btnBack.Enabled = False

            btnForward.Enabled = False

        End If

End Sub

9、   >>”按钮点击事件代码

 

Private Sub forward_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnForward.Click

        If currentpos = ds.Tables("employees").Rows.Count - 1 Then

            Return

        Else

            currentpos += 1

            Dim data() As Byte

            data = ds.Tables("employees").Rows(currentpos)("photo")

            Dim stmphoto As New MemoryStream(data)

            PictureBox1.Image = Image.FromStream(stmphoto)

        End If

    End Sub

10、                      <<”按钮点击事件代码

Private Sub back_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click

        If currentpos = 9 Then

            Return

        Else

            currentpos -= 1

        End If

 

        Dim Data() As Byte

        Data = ds.Tables("employees").Rows(currentpos)("photo")

        Dim stmPhoto As New MemoryStream(Data)

        PictureBox1.Image = Image.FromStream(stmPhoto)

    End Sub

11、                      好了,可以运行看看了。

 

 




相关文章

相关软件