以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  二进制图片保存问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132920)

--  作者:Liangcai
--  发布时间:2019/4/2 11:50:00
--  二进制图片保存问题


此主题相关图片如下:qq截图20190402114114.png
按此在新窗口浏览图片

教工姓名 控件Enter代码
Dim str As String = ""
Dim Arys As List(Of String()) = DataTables("教工基本信息").SQLGetValues("教工姓名|教工编号")
For Each Ary As String() In Arys
    str &= IIF(Len(Ary(0)) = 2,mid(Ary(0),1,1) & "  " & mid(Ary(0),2,1),Ary(0)) & "(" & Ary(1) & ")|"
Next
e.Sender.ComboList = str.trim("|")

教工编号DataFormat代码

Dim dr As DataRow = DataTables("教工基本信息").SQLFind("教工编号 = \'"& e.Text  &"\'")
If dr IsNot Nothing Then
    Tables("教工基本信息").RaiseCurrentChanged()
    e.Form.Controls("教工姓名").text = dr("教工姓名")
    e.Form.Controls("手机号码").text = dr("手机号码")
    e.Form.Controls("身份证号").text = dr("身份证号")
    e.Form.Controls("党派").text = dr("党派")
    e.Form.Controls("民族").text = dr("民族")
    e.Form.Controls("学历").text = dr("学历")
    e.Form.Controls("专业").text = dr("专业")
    e.Form.Controls("毕业日期").text = dr("毕业日期")
    e.Form.Controls("毕业院校").text = dr("毕业院校")
    e.Form.Controls("资格证号码").text = dr("资格证号码")
    e.Form.Controls("职称").text = dr("职称")
    e.Form.Controls("籍贯").text = dr("籍贯")
    e.Form.Controls("家庭住址").text = dr("家庭住址")
    e.Form.Controls("照片").Image = dr.SQlLoadImage("照片") \'从后台提取照片并显示
    e.Form.Controls("身份证").Image = dr.SQlLoadImage("身份证") \'从后台提取照片并显示
    e.Form.Controls("资格证").Image = dr.SQlLoadImage("资格证") \'从后台提取照片并显示
End If

上传照片Click代码

If Tables("教工基本信息").Current Is Nothing Then
    Return
End If
Dim dr As DataRow = Tables("教工基本信息").Current.DataRow
Dim dlg As New OpenFileDialog
dlg.Filter = "图形文件|*.bmp;*.jpg;*.gif;*.png;*pdf"
If dlg.ShowDialog = DialogResult.OK Then
    Dim pic As WinForm.PictureBox = e.Form.Controls("照片")
    dr.SQLSetValue("照片",Nothing) \'从后台删除照片列内容
    pic.Image = Nothing
    dr.SQLInsertFile("照片",dlg.FileName) \'插入文件
    pic.Image = GetImage(dlg.FileName)
End If

保存Click代码

Dim dr As DataRow= DataTables("教工基本信息").SQLFind("教工编号 = \'" & e.Form.Controls("教工编号").Text & "\'")
If dr IsNot Nothing Then
    dr("手机号码") = e.Form.Controls("手机号码").text
    dr("教工姓名") = e.Form.Controls("教工姓名").text
    dr("身份证号") = e.Form.Controls("身份证号").text
    dr("党派") = e.Form.Controls("党派").text
    dr("民族") = e.Form.Controls("民族").text
    dr("学历") = e.Form.Controls("学历").text
    dr("专业") = e.Form.Controls("专业").text
    dr("毕业日期") = e.Form.Controls("毕业日期").text
    dr("毕业院校") = e.Form.Controls("毕业院校").text
    dr("资格证号码") = e.Form.Controls("资格证号码").text
    dr("职称") = e.Form.Controls("职称").text
    dr("籍贯") = e.Form.Controls("籍贯").text
    dr("家庭住址") = e.Form.Controls("家庭住址").text
    dr.Save()
    e.Form.Close()
End If

照片只能保存在第一行,请求老师指教,谢谢!


--  作者:有点甜
--  发布时间:2019/4/2 12:02:00
--  

 

上传照片Click代码

 

If Tables("教工基本信息").Current Is Nothing Then
    Return
End If
Dim dr As DataRow = DataTables("教工基本信息").SQLFind("教工编号 = \'" & e.Form.Controls("教工编号").Text & "\'")
Dim dlg As New OpenFileDialog
dlg.Filter = "图形文件|*.bmp;*.jpg;*.gif;*.png;*pdf"
If dlg.ShowDialog = DialogResult.OK Then
    Dim pic As WinForm.PictureBox = e.Form.Controls("照片")
    dr.SQLSetValue("照片",Nothing) \'从后台删除照片列内容
    pic.Image = Nothing
    dr.SQLInsertFile("照片",dlg.FileName) \'插入文件
    pic.Image = GetImage(dlg.FileName)

    dr.save
End If


--  作者:Liangcai
--  发布时间:2019/4/2 12:18:00
--  

甜老师,如果是新增行就不行了

[此贴子已经被作者于2019/4/2 12:27:41编辑过]

--  作者:有点甜
--  发布时间:2019/4/2 13:03:00
--  
以下是引用Liangcai在2019/4/2 12:18:00的发言:

甜老师,如果是新增行就不行了

[此贴子已经被作者于2019/4/2 12:27:41编辑过]

 

新增的行,你要先把行保存,才能查找和插入图片的。


--  作者:Liangcai
--  发布时间:2019/4/2 13:12:00
--  

保存代码是

dr = DataTables("教工基本信息").SQLFind("教工编号 = \'" & e.Form.Controls("教工编号").Text & "\'")
If dr Is Nothing Then
    dr = DataTables("教工基本信息").AddNew()
    Dim max As String = DataTables("教工基本信息").SQLCompute("Max(教工编号)","教工编号 Like \'" & ary(2) & "%\'")
    If max = "" Then
        dr("教工编号") = ary(2) & "01"
    Else
        Dim v As Integer = max.SubString(6,2)
        dr("教工编号") = ary(2) & format(v +1,"00")
    End If
    dr("手机号码") = e.Form.Controls("手机号码").text
    dr("教工姓名") = e.Form.Controls("教工姓名").text
    dr("身份证号") = e.Form.Controls("身份证号").text
    dr("党派") = e.Form.Controls("党派").text
    dr("民族") = e.Form.Controls("民族").text
    dr("学历") = e.Form.Controls("学历").text
    dr("专业") = e.Form.Controls("专业").text
    dr("身份证号") = e.Form.Controls("身份证号").text
    dr("毕业日期") = e.Form.Controls("毕业日期").text
    dr("毕业院校") = e.Form.Controls("毕业院校").text
    dr("资格证号码") = e.Form.Controls("资格证号码").text
    dr("职称") = e.Form.Controls("职称").text
    dr("籍贯") = e.Form.Controls("籍贯").text
    dr("家庭住址") = e.Form.Controls("家庭住址").text
    dr("履历") = e.Form.Controls("履历").text
    dr("特长") = e.Form.Controls("特长").text
    dr("录入人") = _UserXingming
    dr("录入日期") = Format(Date.Now,"yyyy-MM-dd")
    dr.Save()
    e.Form.Close()
Else
    dr("手机号码") = e.Form.Controls("手机号码").text
    dr("教工姓名") = e.Form.Controls("教工姓名").text
    dr("身份证号") = e.Form.Controls("身份证号").text
    dr("党派") = e.Form.Controls("党派").text
    dr("民族") = e.Form.Controls("民族").text
    dr("学历") = e.Form.Controls("学历").text
    dr("专业") = e.Form.Controls("专业").text
    dr("毕业日期") = e.Form.Controls("毕业日期").text
    dr("毕业院校") = e.Form.Controls("毕业院校").text
    dr("资格证号码") = e.Form.Controls("资格证号码").text
    dr("职称") = e.Form.Controls("职称").text
    dr("籍贯") = e.Form.Controls("籍贯").text
    dr("家庭住址") = e.Form.Controls("家庭住址").text
    dr("履历") = e.Form.Controls("履历").text
    dr("特长") = e.Form.Controls("特长").text
    dr("修改人") = _UserXingming
    dr("修改日期") = Format(Date.Now,"yyyy-MM-dd")
    dr.Save()
    e.Form.Close()
End If

能在这加代码吗?


--  作者:有点甜
--  发布时间:2019/4/2 14:52:00
--  

新增行之后,你已经有save了啊。也就是说,你addnew新增后,要save一下才行。

 

请具体说你的问题以及报错。


--  作者:Liangcai
--  发布时间:2019/4/2 15:09:00
--  

能获取照片路径吗?然后新增行

dr.SQLInsertFile("照片","C:\\Users\\chengdongwei\\Pictures\\EP1.BMP") ‘ 获取照片路径

[此贴子已经被作者于2019/4/2 15:09:19编辑过]

--  作者:有点甜
--  发布时间:2019/4/2 15:11:00
--  
以下是引用Liangcai在2019/4/2 15:09:00的发言:

能获取照片路径吗?然后保存

dr.SQLInsertFile("照片","C:\\Users\\chengdongwei\\Pictures\\EP1.BMP") ‘ 获取照片路径

 

你插入图片的时候,把选择的路径记录在一个textbox或label里面,需要的时候,直接引用控件的值。


--  作者:Liangcai
--  发布时间:2019/4/3 8:29:00
--  
好的,谢谢!