Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#加载项Excel 2010-HRESULT异常:0x800A03EC_C#_Sql Server_Excel_Excel Addins - Fatal编程技术网

C#加载项Excel 2010-HRESULT异常:0x800A03EC

C#加载项Excel 2010-HRESULT异常:0x800A03EC,c#,sql-server,excel,excel-addins,C#,Sql Server,Excel,Excel Addins,我的应用程序有问题。几年前发展起来的。它是MS Excel 2010的一个外接程序,执行对SQL server数据库的调用,并在工作表中形成一个表。我不得不对其进行修改,使其能够与Azure数据库(连接字符串)一起工作,但事实证明,问题比这更为严重。当我尝试运行一个应用程序时,它会给出HRESULT:0x800A03EC异常,我不知道为什么。 已安装MS Excel 2010。给出错误的代码: public void insertData(string startDate, string end

我的应用程序有问题。几年前发展起来的。它是MS Excel 2010的一个外接程序,执行对SQL server数据库的调用,并在工作表中形成一个表。我不得不对其进行修改,使其能够与Azure数据库(连接字符串)一起工作,但事实证明,问题比这更为严重。当我尝试运行一个应用程序时,它会给出HRESULT:0x800A03EC异常,我不知道为什么。 已安装MS Excel 2010。给出错误的代码:

public void insertData(string startDate, string endDate, string startTime, string endTime, string tickerSymbol,
        string RegId, string events, string userId, string PO, bool includePO, string markets)
    {

        try
        {

            //
            if (Globals.ExclAddIn.recordCount < 1000000)
            {
                string szSql = string.Format(@"EXEC sp_Get_Excel_TOQ_Report_Data_Mkt {0}, {1}, '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', {10}",
                startDate, endDate, startTime, endTime, tickerSymbol, RegId, events, userId, PO, markets, includeJPO);

                Workbook w = this.Application.ActiveWorkbook;
                Worksheet ws;
                if (w != null)
                {
                        ws = (Worksheet)w.Sheets.Add(missing,missing,missing,missing);
                        ws.Name = DateTime.Now.ToString("(RPT) yyyyMMdd HHmmss");
                    //}
                }
                else
                {
                    w = this.Application.Workbooks.Add(missing);
                    ws = (Worksheet) w.Worksheets.get_Item(1);
                }


                Range unfreezeRow = (Range)ws.Rows[10];
                unfreezeRow.Application.ActiveWindow.FreezePanes = false;

                ws.Rows.Delete();
                object misValue = System.Reflection.Missing.Value;
                Range range = ws.get_Range("A1:A9", misValue);
                MessageBox.Show(range.EntireRow.Address);

                //Check if the issue is in connection
                SqlConnection conn = new SqlConnection(selectedConnection);
                conn.Open();
                MessageBox.Show("Connection opened...");

                QueryTables xlQryTables = ws.QueryTables;
                IEnumerable<QueryTable> qt = xlQryTables.Cast<QueryTable>();
                foreach (QueryTable q in qt)
                {
                    q.Delete();
                }

                QueryTable xlQueryTable = (QueryTable)xlQryTables.Add(selectedConnection, range, szSql);
                xlQueryTable.RefreshStyle = XlCellInsertionMode.xlOverwriteCells;
                xlQueryTable.AfterRefresh += new RefreshEvents_AfterRefreshEventHandler(xlQueryTable_AfterRefresh);
                xlQueryTable.CommandType = XlCmdType.xlCmdSql;
                xlQueryTable.Refresh(true);

                assignReportHeader(ws);


            }
        }
        catch (Exception e)
        { 
            throw new Exception(e.Message);
        }
    }

连接字符串可以工作。。。我可以看到范围也被选中了。请帮忙。

我不能发表评论,因此我会这样问。
您可以编写显式连接字符串吗。我想问题出在连接字符串上,可能你忘了一些分号之类的东西。

可能重复的不是重复的,我在询问之前已经研究了所有相关主题。问题肯定不在于使用向后兼容的工作表;用户ID=testusr@devdb001;初始目录=DEV;数据源=tcp:devdb001.database.windows.net;我可以看到连接是开放的。但是,你能检查连接的合法性吗?你这是什么意思?我实现这段代码是为了验证://检查问题是否在连接SqlConnection conn=newsqlconnection(selectedConnection)中;conn.Open();MessageBox.Show(“连接已打开…”);它工作,连接打开。不,我的引用不是sql连接字符串我的引用来自qestion的您部分:我遇到错误的地方是:QueryTable xlQueryTable=(QueryTable)xlQryTables.Add(selectedConnection,range,szSql);我不知道你们是否看到了这一点,但无论如何,我会把链接和阅读第一个答案。
QueryTable xlQueryTable = (QueryTable)xlQryTables.Add(selectedConnection, range, szSql);