2011-06-20 14 views
0

私のアプリケーションでは、データベースのデータをExcelシートにエクスポートしたいので、このファイルを読み取り専用にして、ユーザーがExcelのように編集しようとするとメッセージを表示する必要があります私はコンソールアプリケーションでこれをやっているこのシートを編集する。私はこのようなエラーを取得していますsqlテーブルからExcelテーブルへの変換

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(); 
    } 
} 
} 

ERROR [IM002] [Microsoft]の[ODBCドライバマネージャ]データソース名が見つからないと、私はこのようなコードを書かれている

デフォルトドライバが指定されていません

+1

SqlConnectionに接続文字列が必要ですか? – Ben

+0

これは私のコードで書かれていますが、私はここには表示されていません。 – Sweety

+1

ファイルパスのスペースは...できますか? '' 'でラップしよう... –

答えて

0

私の2セントはこれです: - データソース名が正しく指定されていることを確認してください。これが正しい場合、ドライバが正しくインストールされていることを確認してください。再インストールしてください。

また、アプリケーションが実行されているのと同じWindows NTアカウントを使用してデータソース名が定義されていることを確認してください。

アプリケーションがWindows NTサービスとして実行されている場合、データソースはシステムデータソースでなければなりません。

+0

@ウィリアム - 私はドライバーがインストールされているかどうかをチェックする必要がありますあなたが私に教えてもらえないかどうかを確認する必要があります... – Sweety

+0

このキーのレジストリをチェックしてくださいHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ODBC \ ODBCドライバ – Ash

関連する問題