1:当前的需求是:
用户test.xls Sheet1表中有barcode单独一列,数据类型为NVARCHAR(255)
现在要对 Sheet1表 与SQL SERVER数据库中detail表 进行连接,(用户想批量查询)
然后连接后的SELECT结果,我想写进数据集中,再用这个数据集填充DATAGIRD,
再用这个DATAGRID导出到EXCEL表。2:我当前完成的任务是:
建立两个存储过程,把test.xls Sheet1表的数据写入一个临时表,然后进行表连接操作
CREATE PROCEDURE probarcode
AS
select barcode into #tempbarcode from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
GOEXECUTE probarcodeCREATE PROCEDURE prosearch
AS
select distinct t.barcode,family,cmdlin,test,detail,stepid,code,linenum,timec,lob,stepmaker,cnfidasv,dts_flag from #tempbarcode t,faildata f where t.barcode=f.barcodego
execute prosearch3 我的最重要问题是:
asp.net下如何调用这两个存储过程?
怎么分别填充excel产生的记录集,和来自查询结果产生的记录集呢?
用临时表是否能真正解决问题?我是用vb.net语言来开发这个ASP。NET的。
听说这高手多,特意来的。
最好能有具体点的代码,定有高分50相送,谢谢。
用户test.xls Sheet1表中有barcode单独一列,数据类型为NVARCHAR(255)
现在要对 Sheet1表 与SQL SERVER数据库中detail表 进行连接,(用户想批量查询)
然后连接后的SELECT结果,我想写进数据集中,再用这个数据集填充DATAGIRD,
再用这个DATAGRID导出到EXCEL表。2:我当前完成的任务是:
建立两个存储过程,把test.xls Sheet1表的数据写入一个临时表,然后进行表连接操作
CREATE PROCEDURE probarcode
AS
select barcode into #tempbarcode from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
GOEXECUTE probarcodeCREATE PROCEDURE prosearch
AS
select distinct t.barcode,family,cmdlin,test,detail,stepid,code,linenum,timec,lob,stepmaker,cnfidasv,dts_flag from #tempbarcode t,faildata f where t.barcode=f.barcodego
execute prosearch3 我的最重要问题是:
asp.net下如何调用这两个存储过程?
怎么分别填充excel产生的记录集,和来自查询结果产生的记录集呢?
用临时表是否能真正解决问题?我是用vb.net语言来开发这个ASP。NET的。
听说这高手多,特意来的。
最好能有具体点的代码,定有高分50相送,谢谢。
Sub connectsqlserver()
Try
Dim cnn1 As SqlConnection = _
New SqlConnection("Data Source=(local);" & _
"Integrated Security=SSPI;Initial Catalog=train")
cnn1.Open()
Dim str1 As String = "select barcode into #tempbarcode from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)" Dim cmd1 As SqlCommand = New SqlCommand(str1, cnn1)
cmd1.ExecuteNonQuery()
Dim strSQL As String
strSQL = "select distinct t.barcode,family,cmdlin,test,detail,stepid,code,linenum,timec,lob,stepmaker,cnfidasv,dts_flag from #tempbarcode t,faildata f where t.barcode=f.barcode"
'cmd1.CommandText = strSQL
'cmd1.Connection = cnn1
'cmd1.ExecuteReader()
dap1 = New SqlDataAdapter _
(strSQL, _
cnn1)
dap1.Fill(das1)
cnn1.Close()
DataGrid1.DataSource = das1
DataGrid1.DataBind()
Catch ex As Exception
Response.Write(ex.ToString())
End Try End Sub最后我没有用存储过程了,就直接写SELECT语句,
但是有错误提示,说:System.ArgumentNullException: 值不能为空。参数名: dataSet at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) at webexcel.test.connectsqlserver() in E:\Inetpub\wwwroot\webexcel\test.aspx.vb:line 73 我看好象是DATASET为空了,也就是前面的SELECT语句没有能检索出数据来,
高手看是这样么?这个接下来应该怎么改,
谢谢了,真的急。