导出Excel文件不成功
CN001 2008-11-19 05:16:18 当查询语句返回结果数据少时,一切工作正常。但当返回结果大于一定数目(一千条以上,远没到65536)时就报错。错误信息如下:
无法从数据库中提取数据。
请检查数据库服务器或联系您的数据库管理员。确认外部数据库有效,然后重试该操作。
弄了一天,都快疯了,也没找到原因。望高手们赐教!
private void btnExportExcel_Click(object sender, EventArgs e)
{
ExcelExport("select * from tmp where rownum<1000", "示例");
}
public void ExcelExport(string 查询语句, string 标题)
{
Excel.Application excel;
Excel._Workbook xBk;
Excel._Worksheet xSt;
Excel._QueryTable xQt;
string Conn = "OLEDB;Provider=OraOLEDB.Oracle;Data Source=***;User ID=***;Password=***";
string Select = 查询语句;
excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
xBk = excel.Workbooks.Add(true);
xSt = (Microsoft.Office.Interop.Excel._Worksheet)xBk.ActiveSheet;
excel.Cells[2, 2] = 标题;
xSt.get_Range(excel.Cells[2, 2], excel.Cells[2, 2]).Font.Bold = true;
xSt.get_Range(excel.Cells[2, 2], excel.Cells[2, 2]).Font.Name = "黑体";
xSt.get_Range(excel.Cells[2, 2], excel.Cells[2, 2]).Font.Size = 22;
xQt = xSt.QueryTables.Add(Conn, xSt.get_Range("B4", Type.Missing), Select);
xQt.Name = "QueryTableName";
xQt.FieldNames = true;//显示字段名
xQt.RowNumbers = false;
xQt.FillAdjacentFormulas = false;
xQt.PreserveFormatting = false;
xQt.BackgroundQuery = true;
xQt.RefreshStyle = Microsoft.Office.Interop.Excel.XlCellInsertionMode.xlInsertDeleteCells;
xQt.AdjustColumnWidth = true;
xQt.RefreshPeriod = 0;
xQt.PreserveColumnInfo = true;
xQt.Refresh(xQt.BackgroundQuery);
excel.Visible = true;
}