在我的应用程序要导出到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] [微软]找不到[ODBC驱动程序管理器]数据源名称和没有指定默认驱动程序
你的SqlConnection需要一个连接字符串? – Ben
雅我写在我的代码,但我没有在这里显示.. – Sweety
它可能是文件路径中的空间...?尝试用'“'... –