У меня проблема с приложением. разработанный несколько лет назад. Это надстройка для MS Excel 2010, которая выполняет вызов базы данных SQL-сервера и формирует таблицу в Рабочем листе. Мне пришлось изменить ее, чтобы она работала с базой данных Azure (строки подключения), но оказалось, что проблема заключается в том, немного глубже, чем это. Когда я пытаюсь запустить приложение, оно дает исключение HRESULT: 0x800A03EC, и я не могу понять, почему. Установлен MS Excel 2010. Код, который выдает ошибку:C# add-in Excel 2010 - Исключение из HRESULT: 0x800A03EC
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);
}
}
место я получаю сообщение об ошибке в это:
QueryTable xlQueryTable = (QueryTable)xlQryTables.Add(selectedConnection, range, szSql);
Строка подключения работает ... Я могу видеть диапазон выбран как хорошо. Пожалуйста помоги.
Возможный дубликат [HRESULT: 0x800A03EC on Worksheet.range] (http://stackoverflow.com/questions/7099770/hresult-0x800a03ec-on-workheet-range) – Smartis
Это не дубликат, я изучил все связанные темы прежде чем спрашивать. Проблема, безусловно, не в использовании обратного совместимого листа. –