C#和excel自动化,如何使用CopyFromRecordset函数

时间:2014-06-24 11:36:50

标签: c# .net excel-automation

我正在尝试使用SQL服务器中的一些数据填充excel文件,

我的代码如下,

   public static void SQLToExcel(Excel.Workbook xlWorkBook, string SQL, string tFORMAT)
    {
        string connectionString = ConfigurationManager.ConnectionStrings["ANSICConnection"].ConnectionString;
        SqlConnection conn;
        conn = new SqlConnection(connectionString);
        conn.Open();


        using (SqlCommand cmd = new SqlCommand(SQL, conn))
        {
            SqlDataReader reader = cmd.ExecuteReader();

            if (reader.HasRows)
            {
                reader.Read();

                ((Range)xlWorkBook.Sheets["COVER"].Range("D6")).CopyFromRecordset(reader);


            }
            reader.Close();
        }


        conn.Close();


    }

我收到以下错误

{"不支持此类界面(HRESULT异常:0x80004002(E_NOINTERFACE))"}

我需要将阅读器转换为数组吗?

1 个答案:

答案 0 :(得分:0)

要使用CopyFromRecordset,您需要将SqlDataReader替换为ADODB.Recordset。不要忘记添加对 Microsoft ActiveX Data Objects 2.x 库的引用。