上次你说的代码的确可以一次添加多个图片,但是添加后,项目目录里并没有保存图片啊?尽当时能够看到,如果按住键盘的方向键下键,或者上键不丢,过一遍,图片就全部消失了,但是名字还在,
Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
For Each fl As String In dlg.FileNames
Dim dr As DataRow = DataTables("表A").AddNew()
dr("文件") = filesys.GetName(fl)
Next
End If
这个怎么保存啊?
我发现关于图片更改名字,是可以实现的,
使用表事件 表事件BeforeAttachFile可以完成,
DataTable: 触发事件的DataTable
DataRow: 触发事件的DataRow
DataCol: 触发事件的DataCol
SourceFolder: 要添加文件的来源目录
FileName: 要添加文件的名称,你可以根据需要改名。
SubFolder: 指定存放文件的子目录
Cancel: 逻辑型,是否取消此次添加。
把图片放在不同的文件夹,就不会覆盖了
Dim
dr As DataRow = e.DataRow
If dr.IsNull("供应商") Or Dr.IsNull("日期") Then
MessageBox.Show("供应商和日期不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Cancel = True
Else
e.SubFolder = dr("供应商") & "\" & dr("日期").Year
End If
我想把名字自动编号作为图片的名字,这样就不会覆盖了,这样即使当天上传同名的图片也不会覆盖了,
FileName: 要添加文件的名称,你可以根据需要改名
这个参数怎么用啊,
下面有段编号可以参考
If e.DataCol.Name = "日期" Then
If e.DataRow.IsNull("日期") Then
e.DataRow("编号") = Nothing
Else
Dim bh As String = Format(e.DataRow("日期"),"yyyyMMdd") '取得编号的8位前缀
If e.DataRow("编号").StartsWith(bh) = False '如果编号的前8位不符
Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(编号)","日期 = #" & e.DataRow("日期") & "#") '取得该天的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(9,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("编号") = bh & "-" & Format(idx,"000")
End If
End If
End If
这个编号已经足够强大了,但是有点复杂,我只需要编号就行了,帮忙简化一下,怎么定义 FileName:,还有最上面的代码上传后不保存问题,怎么解决?