Преобразование таблицы SQL в таблицу Excel - PullRequest
0 голосов
/ 20 июня 2011

В моем приложении я хочу, чтобы данные базы данных были экспортированы в лист Excel, и мне нужно сделать этот файл доступным только для чтения, и я хочу отобразить сообщение, если пользователь пытается изменить Excel Like, вам не разрешено редактировать этот лист. делать это в консольном приложении.

Я написал такой код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data.Odbc;

namespace ConsoleApplication1{

class Program
{

    static void Main(string[] args)
    {

        SqlConnection con = new SqlConnection
         ("");
        con.Open();
        SqlCommand cmd = new SqlCommand
        ("select Temprature,time,date from temprature3 ", con);
        SqlDataReader data = cmd.ExecuteReader();
        OdbcConnection dcon = new OdbcConnection();
        dcon.ConnectionString = @"Driver={Microsoft Excel Driver(*.xls)};Create_DB=C:\Documents andSettings\Administrator\Desktop\Excel\Report.xls;DBQ=C:\Documents and Settings\Administrator\Desktop\Excel\Report.xls;
  ReadOnly=True";
        dcon.Open();
        OdbcCommand dcom=new OdbcCommand
           ("create table Report new
           (Temperature double,Time datetime,Date datetime)",dcon);
        dcom.ExecuteNonQuery();
        Console.WriteLine("table has been created");
        OdbcCommand dinsert=new OdbcCommand("insert into Report values(?,?,?)",dcon);
        OdbcParameter Temprature=new OdbcParameter("@Temperature",OdbcType.Double);
        OdbcParameter Time=new OdbcParameter("@Temperature",OdbcType.DateTime);
        OdbcParameter Date=new OdbcParameter("@Temperature",OdbcType.DateTime);
        dinsert.Parameters.Add(Temprature);
        dinsert.Parameters.Add(Time);
        dinsert.Parameters.Add(Date);
        int count=0;
        while(data.Read())
        {
            Temprature.Value=data[0];
            Time.Value=data[1];
            Date.Value=data[2];
            dinsert.ExecuteNonQuery();
            count=count+1;

        }

        Console.WriteLine("------------------------------------------------------");
        Console.WriteLine(count+"Number of rows are exported to excel");
        Console.WriteLine("-------------------------------------------------------");
        Console.ReadLine();
    }
}
}

Я получаю сообщение об ошибке:

ОШИБКА [IM002] [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию

1 Ответ

0 голосов
/ 20 июня 2011

Мои 2 цента на это: - Убедитесь, что имя источника данных было указано правильно. Если это правильно, убедитесь, что драйвер установлен правильно. Попробуйте переустановить его.

Также убедитесь, что имя источника данных было определено с использованием той же учетной записи Windows NT, под которой работает приложение.

Если приложение работает как служба Windows NT, источником данных должен быть системный источник данных.

...