两个问题。第一个问题 两张图片写入数据库
第二个问题 图片有路径删除原文件问题。 有代码有真相。请大家帮帮我。谢谢了。我是新手。详细点好。。 VB自己看书学的。·· 没看好久····
看到一个实体例子。存一张可以。但是自己这个里面有两张图片。自己折腾了半天还是过来求助了。确实没搞出来。新手新手请大家帮帮····代码如下。
Option Explicit
Dim Cn As ADODb.Connection
Dim Rs As ADODb.Recordset
Dim mst As ADODb.Stream
Dim mystr As String--------------------------------
前面我想的解决方法是在写一个 dim mst2 as adodb.steam 什么的重新定义个ADODB两个来。但是这样试试那样试一试都不行。所以来求助下。···例子是默认的 一个打开按钮 一个图片保存按钮。我自己做的东西。是两张图片都需要保存到数据库, 这个例子只保存一张我研究了下 也没整出来。 我的数据表名是 CON 我这里用的是IMAGE BOX 控件
一个打开按钮代码是
'On Error GoTo errh
CommonDialog1.Filter = "所有文件图片|*.jpg;*.gif;*.bmp|BMP|*.bmp|JPG|*.jpg|GIF|*.gif|"
'CommonDialog1.FilterIndex = 2 “这句什么意思? ”CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
mystr = CommonDialog1.FileName在保存按钮那里的代码是:
If mystr <> "" Then
Set Cn = New ADODB.Connection
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\qx.mdb;Persist Security Info=False"
Cn.Open
Set rs = New ADODB.Recordset
rs.Open "select * from con", Cn, adOpenStatic, adLockOptimistic
Set mst = New ADODB.Stream
mst.Type = adTypeBinary
mst.Open
mst.LoadFromFile mystr
rs.AddNew
rs.Fields("tu1").Value = mst.Read
rs.Update
rs.Close
Cn.Close
-----------------------FORM LOAD-------
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\qx.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from con"
Adodc1.Refresh----------以上方法解决了一张图片保存到数据库。同时用MOVE.first 什么的浏览也可以加载显示。
但是两张如何写啊。? 谁能告诉一下。详细点的 我折腾了没出来。---------之前很多朋友说写数据库不好。数据库太大。而且慢。 我前面也弄出个方法。 自己研究的比较笨。就是保存图片文件名。但是同时只要图片文件名加载到 IMAGE里面就 自动根据当前时间和日期给图片命名。这样图片永远不会重复名字。加载时候只要加载数据库里字段名字就可以了。但是遇到个问题。删除就是大问题。 删除数据库记录但是里面图片根本没有删除。
因为图片是在别的文件夹下的------------ 具体代码如下。谁顺便告诉我这样怎么删除这样的文件
以下TEXT18.TEXT就是文件时间加文件名,这样就不会覆盖了保存了。
Private Sub Command3_Click() '打开图片1进行
On Error Resume Next
CommonDialog1.Filter = "所有图片文件 |*.jpg;*.bmp;*.gif|BMP格式|*.BMP|JPG格式|*.JPG|GIF格式|*.GIF"
CommonDialog1.ShowOpen
CommonDialog1.CancelError = True
Path = CommonDialog1.FileName
Image1.Picture = LoadPicture(Path) Text24.Text = Format$(Date, "yyyy-mm")
boa = Format(Now, "yyyy-mmdd-hhmm-ss" & "-")
Text18.Text = boa & Dir(CommonDialog1.FileName)
End Sub移动的时候
Private Sub Command7_Click() '上一条 里面“tu2"也是一个文本框获得名字加日期和时间
Adodc1.Recordset.MovePrevious
dirname4 = App.Path & "\image\"
Image1.Picture = LoadPicture(dirname4 & Text24.Text & "\" & Adodc1.Recordset.Fields("tu2"), 1)
If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst这样就完成了移动。但是到删除的时候就傻眼了。。
Adodc1.Recordset.Delete
用这个删除的时候如何在定义回去图片就不行了。试了各种办法
'Kill dirname & "\" & "CommonDialog1.FileName" 等等 都不行。我估计是自己没弄对。所以希望大家帮忙看看这两个问题。····
第二个问题 图片有路径删除原文件问题。 有代码有真相。请大家帮帮我。谢谢了。我是新手。详细点好。。 VB自己看书学的。·· 没看好久····
看到一个实体例子。存一张可以。但是自己这个里面有两张图片。自己折腾了半天还是过来求助了。确实没搞出来。新手新手请大家帮帮····代码如下。
Option Explicit
Dim Cn As ADODb.Connection
Dim Rs As ADODb.Recordset
Dim mst As ADODb.Stream
Dim mystr As String--------------------------------
前面我想的解决方法是在写一个 dim mst2 as adodb.steam 什么的重新定义个ADODB两个来。但是这样试试那样试一试都不行。所以来求助下。···例子是默认的 一个打开按钮 一个图片保存按钮。我自己做的东西。是两张图片都需要保存到数据库, 这个例子只保存一张我研究了下 也没整出来。 我的数据表名是 CON 我这里用的是IMAGE BOX 控件
一个打开按钮代码是
'On Error GoTo errh
CommonDialog1.Filter = "所有文件图片|*.jpg;*.gif;*.bmp|BMP|*.bmp|JPG|*.jpg|GIF|*.gif|"
'CommonDialog1.FilterIndex = 2 “这句什么意思? ”CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
mystr = CommonDialog1.FileName在保存按钮那里的代码是:
If mystr <> "" Then
Set Cn = New ADODB.Connection
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\qx.mdb;Persist Security Info=False"
Cn.Open
Set rs = New ADODB.Recordset
rs.Open "select * from con", Cn, adOpenStatic, adLockOptimistic
Set mst = New ADODB.Stream
mst.Type = adTypeBinary
mst.Open
mst.LoadFromFile mystr
rs.AddNew
rs.Fields("tu1").Value = mst.Read
rs.Update
rs.Close
Cn.Close
-----------------------FORM LOAD-------
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\qx.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from con"
Adodc1.Refresh----------以上方法解决了一张图片保存到数据库。同时用MOVE.first 什么的浏览也可以加载显示。
但是两张如何写啊。? 谁能告诉一下。详细点的 我折腾了没出来。---------之前很多朋友说写数据库不好。数据库太大。而且慢。 我前面也弄出个方法。 自己研究的比较笨。就是保存图片文件名。但是同时只要图片文件名加载到 IMAGE里面就 自动根据当前时间和日期给图片命名。这样图片永远不会重复名字。加载时候只要加载数据库里字段名字就可以了。但是遇到个问题。删除就是大问题。 删除数据库记录但是里面图片根本没有删除。
因为图片是在别的文件夹下的------------ 具体代码如下。谁顺便告诉我这样怎么删除这样的文件
以下TEXT18.TEXT就是文件时间加文件名,这样就不会覆盖了保存了。
Private Sub Command3_Click() '打开图片1进行
On Error Resume Next
CommonDialog1.Filter = "所有图片文件 |*.jpg;*.bmp;*.gif|BMP格式|*.BMP|JPG格式|*.JPG|GIF格式|*.GIF"
CommonDialog1.ShowOpen
CommonDialog1.CancelError = True
Path = CommonDialog1.FileName
Image1.Picture = LoadPicture(Path) Text24.Text = Format$(Date, "yyyy-mm")
boa = Format(Now, "yyyy-mmdd-hhmm-ss" & "-")
Text18.Text = boa & Dir(CommonDialog1.FileName)
End Sub移动的时候
Private Sub Command7_Click() '上一条 里面“tu2"也是一个文本框获得名字加日期和时间
Adodc1.Recordset.MovePrevious
dirname4 = App.Path & "\image\"
Image1.Picture = LoadPicture(dirname4 & Text24.Text & "\" & Adodc1.Recordset.Fields("tu2"), 1)
If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst这样就完成了移动。但是到删除的时候就傻眼了。。
Adodc1.Recordset.Delete
用这个删除的时候如何在定义回去图片就不行了。试了各种办法
'Kill dirname & "\" & "CommonDialog1.FileName" 等等 都不行。我估计是自己没弄对。所以希望大家帮忙看看这两个问题。····
一句中指定了4个过滤器分别是
所有文件图片|*.jpg;*.gif;*.bmp
BMP|*.bmp
JPG|*.jpg
GIF|*.gif
在CommonDialog1.FilterIndex = 2 这句指定后面的打开对话框在用户没选择过滤类型的一开始,使用第二个,也就是BMP|*.bmp
下面是一个ADODB连接数据库并显示出来的示例,可以参考一下
Ctrl+t找Microsoft DataGrid Control....
菜单"工程"->"引用" 找 Microsoft ActiveX Data Object.... Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim SqlStr As String
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=111"
SqlStr = "Select * From 某个表"
rst.CursorLocation = adUseClient
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText '打开记录集
Set DataGrid1.DataSource = rst '给DataGrid设置数据源
谢谢泰山的解答。问题是第一个存入两张图片到数据库问题没解决。···ADODB我看了。也大概会绑定。问题是 我之前做那个的时候只会用ADODC控件。 希望更多高手来解答下问题。···
如果图片数量不固定,那就两张图片分别写两条记录.读取的时候把满足条件的两张图片都读出来,显示到程序里.
还有一种办法,就是把两张图片压缩成一个文件,然后写入数据库.读取的时候再解出来.
rs.AddNew
rs.Fields("tu1").Value = mst.Read
rs.Update
rs.Close
这个代码不是这样的么
If mystr <> "" Then
Set Cn = New ADODB.Connection
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\qx.mdb;Persist Security Info=False"
Cn.Open
Set rs = New ADODB.Recordset
rs.Open "select * from con", Cn, adOpenStatic, adLockOptimistic
Set mst = New ADODB.Stream
mst.Type = adTypeBinary
mst.Open
mst.LoadFromFile mystr
rs.AddNew
rs.Fields("tu1").Value = mst.Read
rs.Update
rs.Close
Cn.Close
-------------我改成
dim as mysty1 String
If mystr <> "" Then
Set Cn = New ADODB.Connection
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\qx.mdb;Persist Security Info=False"
Cn.Open
Set rs = New ADODB.Recordset
rs.Open "select * from con", Cn, adOpenStatic, adLockOptimistic
Set mst = New ADODB.Stream
mst.Type = adTypeBinary
mst.Open
mst.LoadFromFile mystr
rs.AddNew
rs.Fields("tu2").Value = mst.Read rs.Update
rs.Close
Cn.Close但是并保存不上。只能保存一个。····
有两个字段 一个是 tu1 一个是tu2 现在tu1 参考实际例子可以保存进去。但是tu2 无法二进制存进去。两个压缩一个文件。那读取的时候也是麻烦啊 现在image控件绑定的名字 是 tu1 以及image2控件绑定名字是tu2 有两个字段······
你语句里有两个MST1 MST2 还有你用 text.text控件获取的是什么 是路劲么?还是拿着个获取文件名?
mst1.LoadFromFile Text3.Text我的代码前面保存到数据库里 只有图片直接二进制。这个你再写两个这个是撒意思?
rs.Fields("id").Value = Text1.Text
rs.Fields("xm").Value = Text2.Text-------------------
楼上的朋友请指教。别的高手欢迎来说说。这个问题好久了,就是没人解答。难道很难么。不像啊。···
我这样写Dim Cn As adodb.Connection
Dim rs As adodb.Recordset
Dim mst As adodb.Stream
Dim mst1 As adodb.Stream
Dim mystr As String
Dim mystr1 As StringIf mystr <> "" And mystr1 <> "" Then Set Cn = New adodb.Connection
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\qx.mdb;Persist Security Info=False"
Cn.Open
Set rs = New adodb.Recordset
rs.Open "select * from con", Cn, adOpenStatic, adLockOptimistic
Set mst = New adodb.Stream
mst.Type = adTypeBinary
mst.Open
mst.LoadFromFile mystr
Set mst1 = New adodb.Stream
mst1.Type = adTypeBinary
mst1.Open
mst1.LoadFromFile mystr1
rs.AddNew
rs.Fields("tu1").Value = mst.Read
rs.Fields("tu2").Value = mst1.Read
rs.Update
rs.Close
Cn.Close就是参考你的那个写的。但是现在有个问题。 。。我这个是在一个界面下编辑的 这个界面下有。添加删除保存等按钮。Adodc1.Recordset.AddNew 这时添加按钮但是在图片在保存里又写入上面的代码 保存图片到数据库的
rs.AddNew
rs.Fields("tu1").Value = mst.Read
rs.Fields("tu2").Value = mst1.Read
rs.Update
rs.Close
Cn.Close
这样就相当于 添加了两条数据。··· 一条刷新Adodc1.Recordset.AddNew文字数据 一条是这个图片保存的、