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相送,谢谢。

解决方案 »

  1.   

    补充:
       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语句没有能检索出数据来,
    高手看是这样么?这个接下来应该怎么改,
    谢谢了,真的急。