我正在将数据库信息导出到VB.NET MVC项目的Excel文件中。VB.NET执行存储过程 - 编辑
我已经完成了excel部分,并且能够将一个硬代码表导出到excel中。但我需要填写表中的数据库字段。我有一个存储过程,可以获取我需要的所有信息,但我无法使其运行,并且能够让我按需要的顺序放置所需的字段。
如果有帮助,这就是我制作excel表格的方法。
Dim blah = New DataTable("testing")
blah.Columns.Add("Col1", Type.GetType("System.String"))
blah.Columns.Add("Col2", Type.GetType("System.String"))
'Below will be switched out for table data, this is where the try for the SQL will end up
blah.Rows.Add(1, "hello")
blah.Rows.Add(2, "hello")
blah.Rows.Add(3, "hello")
blah.Rows.Add(4, "hello")
Dim grid = New GridView()
grid.DataSource = blah
grid.DataBind()
Response.ClearContent()
Response.Buffer = True
Response.AddHeader("content-disposition", "attachment; filename=Test-Report.xls")
Response.ContentType = "application/ms-excel"
Response.Charset = ""
Dim sw = New StringWriter()
Dim htw = New HtmlTextWriter(sw)
grid.RenderControl(htw)
Response.Output.Write(sw.ToString())
Response.Flush()
Response.End()
编辑----我有找出语法和值用来运行具有返回值的存储过程,并能够来遍历它,并采取行值的问题。我做了大量的谷歌搜索,大多数存储过程没有返回值或者返回一个值的查询,我返回了很多字段。
存储过程我跑看起来像这样:
SELECT
i.insurer_name
,cs.customer_name
,cs.customer_address
,cs.claim_number
,cs.work_type
,anu.FirstName
,anu.LastName
,l.location_name
,cs.completed_date
,q.question_text
,a.answer_text
FROM insurer i
inner join completed_survey cs on cs.insurer_id = i.insurer_id
inner join AspNetUsers anu on anu.Id = cs.user_id
inner join location l on l.location_id = cs.location_id
inner join answer a on a.complete_id = cs.completed_id
inner join question q on q.question_id = a.question_id
ORDER BY i.insurer_name, cs.survey_score desc
EDIT 2 ----我不完全知道如何回答,我使用的是什么数据库连接。我在web配置一个连接字符串和我使用实体框架,所以我的大部分代码是这样
Private db As New SurveyDBModel
db.table_name.ToList()
db.table_name.Add(new_row)
您尝试执行SP的位置在哪里?此外,[执行存储过程]的可能副本(https://stackoverflow.com/questions/5991877/execute-a-sql-stored-procedure-and-process-the-results) –
_but但我无法得到它run_ - 请具体说明您遇到的问题。 “我有麻烦”不是一个有效的问题陈述。 –
你正在使用什么数据库连接库?请显示您用来连接数据库并执行程序的代码。如果您使用的是ADO.NET,则通常只需将结果直接导出到DataSet或DataTable中。还有什么RDBMS呢? SQL Server? – ADyson