写文件难题!

zoulipeng 2003-08-25 11:52:12
我想从数据库中循环取数据,每次取一条记录,就生成一个文件
1:每次我生成的文件名称,我的文件名称可以循环取名称,怎么做,谢谢大家!

Dim LstrSQL As String
Dim LConn As System.Data.OleDb.OleDbConnection
Dim LCmd As System.Data.OleDb.OleDbCommand
Dim LReader As System.Data.OleDb.OleDbDataReader
Dim lname As String
Dim lname1 As String
Dim strFileName As String
Dim DirectoryLogs As String
Dim LStreamWriter As System.IO.StreamWriter
DirectoryLogs = ConfigurationSettings.AppSettings.Item("DirectoryLogs")
strFileName = Now.Year.ToString + Now.Month.ToString + ".js"
Dim fs As System.IO.FileStream = New System.IO.FileStream(DirectoryLogs + strFileName, System.IO.FileMode.CreateNew)
Dim w As System.IO.BinaryWriter = New System.IO.BinaryWriter(fs)

LstrSQL = "SELECT A.STCDT, A.YMDHM, B.TABLECODE FROM dbo.TV_MAXNOTABLECODE_V A INNER JOIN dbo.TV_MAX_V B ON A.STCDT = B.STCDT AND A.YMDHM = B.YMDHM AND B.TABLECODE <> 'ST_RNFL_R'"
Try
LConn = New System.Data.OleDb.OleDbConnection(ConnString)
If LConn.State <> ConnectionState.Open Then LConn.Open()
LCmd = New System.Data.OleDb.OleDbCommand(LstrSQL, LConn)
LReader = LCmd.ExecuteReader
While LReader.Read
lname = LReader("STCDT").ToString()
lname1 = LReader("TABLECODE").ToString()
If System.IO.Directory.Exists(DirectoryLogs) = False Then
System.IO.Directory.CreateDirectory(DirectoryLogs)
End If

If System.IO.File.Exists(DirectoryLogs + strFileName) = False Then
'*把此文本文件作为对象分派给 streamwriter对象
w.Write("工程编号:" + lname + "表名称:" + lname1)
w.Seek(0, System.IO.SeekOrigin.Begin)
End If

'*把此文本文件作为对象分派给 streamwriter对象


w.Write("工程编号:" + lname + "表名称:" + lname1)
w.Seek(0, System.IO.SeekOrigin.Begin)

End While
Catch ex As Exception
exNoteBugs(ex.Message, "mainweb.aspx.vb/ Private Sub Page_Load()")
Finally
DisposeObject(LCmd, LConn)
LReader.Close()
End Try


...全文
28 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
meetweb 2003-08-25
  • 打赏
  • 举报
回复
文件名称定义可以考虑以你表的关键字加上数据记录的当前数做为文件名.
例如:
While LReader.Read
lID = LReader("ID").ToString()
lname1 = LReader("TABLECODE").ToString()
strFileName=lname1 +lID 'strFileName为文件名称
If System.IO.Directory.Exists(DirectoryLogs) = False Then
System.IO.Directory.CreateDirectory(DirectoryLogs)
End If

If System.IO.File.Exists(DirectoryLogs + strFileName) = False Then
'*把此文本文件作为对象分派给 streamwriter对象
w.Write("工程编号:" + lname + "表名称:" + lname1)
w.Seek(0, System.IO.SeekOrigin.Begin)
End If

'*把此文本文件作为对象分派给 streamwriter对象


w.Write("工程编号:" + lname + "表名称:" + lname1)
w.Seek(0, System.IO.SeekOrigin.Begin)

End While
zoulipeng 2003-08-25
  • 打赏
  • 举报
回复
没报什么错误,问题其实很简单
我想实现 从数据库中每取一条记录,写一次文件。现在就是每次取文件名称我还没办法控制。
能不能给个例子给我。谢谢大家
danfree 2003-08-25
  • 打赏
  • 举报
回复
你写那么老多,直接说抱什么错了吧
danfree 2003-08-25
  • 打赏
  • 举报
回复
如果是临时文件,则用时间Now.ToString("yyyyMMddHHmmss")+随机数来得到
如果是要保存的文件,则用时间Now.ToString("yyyyMMddHHmmss")+表的关键字段值

cnhgj 2003-08-25
  • 打赏
  • 举报
回复
同意楼上的
ms44 2003-08-25
  • 打赏
  • 举报
回复
取时间好了,不可能有一样的吧?

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧