人在那里,可以帮助VB.NET的这个小块转换为VBScript,当我在写我的测试应用程序,我会在使用它的应用程序是所有的VBScript =(任何人都可以将此VB.NET代码转换为VBScript?
我不知道代码从数据库中获取表格,然后写入几行文字,然后将表格写入制表符分隔的文件。我知道我可能必须完全用Lambda重写该部分?我可能必须重新开始,但如果任何人都可以这样做我会很感激!
Private dataTable As New DataTable()
Protected Sub Page_Load(sender As Object, e As EventArgs)
PullData()
End Sub
Public Sub PullData()
'Get data from DB into a DataTable
Using conn As New SqlConnection("Server=.\sqlexpress;Database=DB;User Id=User;Password=Password;")
Using cmd As New SqlCommand("SELECT areaID as 'Pond Number', storageDescription + SPACE(1) + areaID as 'Pond Name', " & vbCr & vbLf & "case when fishWeight = 0 then 0 else 1 end as 'Pondis Used', 1 as 'Volume', " & vbCr & vbLf & "FeedDensity AS 'Feed Density',round(cast(FeedDensity * revolution as float(25)),2)/*cast as float for correct rounding*/ AS 'Feed Multiplier'," & vbCr & vbLf & "feedType as 'Feed Type', feedName as 'Feed Name', batchID AS 'FishBatchCode'" & vbCr & vbLf & vbCr & vbLf & "FROM dbo.vwStorageMASTER" & vbCr & vbLf & vbCr & vbLf & "WHERE fkLocationID = 1 AND fkStorageIndicator <> 3 ORDER BY sequenceNumber ASC", conn)
conn.Open()
Dim da As New SqlDataAdapter(cmd)
da.Fill(dataTable)
End Using
End Using
'Output tab-delimited
Dim delim As String = vbTab
Dim sb = New StringBuilder()
sb.AppendLine("Trafalgar Master File" & vbCr & vbLf & vbCr & vbLf)
sb.AppendLine(String.Join(delim, "Number of Ponds: ", dataTable.Rows.Count.ToString() & vbCr & vbLf & vbCr & vbLf))
sb.AppendLine(String.Join(delim, dataTable.Columns.Cast(Of DataColumn)().[Select](Function(arg) arg.ColumnName)))
For Each dataRow As DataRow In dataTable.Rows
sb.AppendLine(String.Join(delim, dataRow.ItemArray.[Select](Function(arg) arg.ToString())))
Next
'Prompt user to download tab-delimited file
Dim FileName As String = "test.xls"
Dim response As System.Web.HttpResponse = System.Web.HttpContext.Current.Response
response.ClearContent()
response.Clear()
response.ContentType = "text/plain"
response.AddHeader("Content-Disposition", "attachment; filename=" & FileName & ";")
response.Write(sb.ToString())
response.Flush()
response.[End]()
End Sub
好东西你没有使用服务器控件。那会很糟糕。 – 2013-02-13 19:21:29
另外:如果您使用DataReader而不是DataTable,并且将输出直接写入响应流与构建巨大字符串,则.Net版本可能会更快。事实上,你基本上持有(至少)3个内存中的整个页面的副本,以完整的http请求。 – 2013-02-13 19:22:52
我也会刺伤它,自从asp.net/vb.net发布以来,我还没有玩过vbscript。我知道语法看起来很相似,但vbb到vb6反之亦然,这很容易。 vb.net到vbscript会有点困难。 – 2013-02-13 19:27:29