c#操作execl的问题

祥子爱游戏 2014-03-19 10:32:11
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.IO;
using System.Collections;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string name;
int sum;
//Array动态数组的建立,用来存列名
ArrayList aList = new ArrayList();

Console.WriteLine("输入要建立的文件名(包括后缀)");
name = Console.ReadLine().ToString();
Console.WriteLine("输入要建立几个列名");
sum = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < sum; i++)
{
Console.WriteLine("请输入列名");
aList.Add(Console.ReadLine().ToString());
}
addtable(name, aList);


}
//public static bool newtable(string name)
//{
// FileStream f1 = new FileStream(name, FileMode.Open);
// if (f1 != null)
// {
// return true;
// }
// return false;
//}
public static void addtable(string name, ArrayList a)
{
//try
//{
// FileStream f = new FileStream(name, FileMode.Create);
// f.Close();
//}
//catch
//{
// Console.WriteLine("jianlishibei");
//}
//string strOdbcCon = @"Provider=Microsoft.ACE.OLEDB.12.0; Persist Security Info=False;Data Source=1.xlsx; Extended Properties=Excel 8.0";
string strOdbcCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" + name + ";Extended Properties='Excel 8.0;'";
//string strOdbcCon = @"Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False;Data Source=1.xlsx;Extended Properties='Excel 8.0;'";
OleDbConnection OleDB = new OleDbConnection(strOdbcCon);
//string strCom = " Create Table [Sheet1] (" + col1 + " varchar(20)," + col2 + " varchar(20))";
OleDB.Open();


foreach (object o in a)
{
//string strCom = "Create Table [Sheet1] (" + o.ToString() + " varchar(20))";
string strCom = "alter table [Sheet1] add " + o.ToString() + " varchar(20)";
OleDbCommand ass = new OleDbCommand(strCom, OleDB);
ass.ExecuteNonQuery();
}

OleDB.Close();
}
}
}
...全文
351 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
祥子爱游戏 2014-03-31
  • 打赏
  • 举报
回复
我知道网上有很多这样的东西。 我最开始想自己去写一个的,可是写不出来,就在网上查了一下资料修改了一下,结果还是不对,就到这里来求助了。 没得到正确的回答,我很伤心。
祥子爱游戏 2014-03-27
  • 打赏
  • 举报
回复
引用 18 楼 zhang1struts1yun 的回复:
c# 操作execl 是这样的么??? 谁教你的啊!!! (百度一下 c# 操作execl ,什么问题都解决了) 顺便说一下,你的所有方法都是错误的,删掉重写。
我这是create表,结构没有的。还有每个人都应该去自己去做
fjq519552243 2014-03-25
  • 打赏
  • 举报
回复
表结构有问题,或者你的cmd命令不对,检查xia !
祥子爱游戏 2014-03-25
  • 打赏
  • 举报
回复
引用 15 楼 F546445693 的回复:
你先把可以执行的语句写在分析器中执行,没有问题了 到vs中去把这条语句拼出来不就可以了吗???? 这麽说懂了吗???
不懂,没看11楼的图吗,明显是create的错
zhang1struts1yun 2014-03-25
  • 打赏
  • 举报
回复
c# 操作execl 是这样的么??? 谁教你的啊!!! (百度一下 c# 操作execl ,什么问题都解决了) 顺便说一下,你的所有方法都是错误的,删掉重写。
F546445693 2014-03-24
  • 打赏
  • 举报
回复
你先把可以执行的语句写在分析器中执行,没有问题了 到vs中去把这条语句拼出来不就可以了吗???? 这麽说懂了吗???
祥子爱游戏 2014-03-21
  • 打赏
  • 举报
回复
能不能有个人帮我,我要是能解决就不来这了
祥子爱游戏 2014-03-20
  • 打赏
  • 举报
回复
引用 12 楼 u010946993 的回复:
数据库语句取出来修改,编译通过了吗
明显没通过啊,编译器不就是说create有错嘛
arSavior 2014-03-20
  • 打赏
  • 举报
回复
数据库语句取出来修改,编译通过了吗
祥子爱游戏 2014-03-20
  • 打赏
  • 举报
回复
create错误。
为什么就你一个人帮我呢?
F546445693 2014-03-19
  • 打赏
  • 举报
回复
string strCom = "Create Table [Sheet1] ( " ; 
if(a.Length <=0){return;}
foreach (object o in a)
            {
                strCom +=  o.ToString() + "  varchar(20),";
            }
strCom = strCom.SubString(0,strCom.Length-1) +")";
                OleDbCommand ass = new OleDbCommand(strCom, OleDB);                
                ass.ExecuteNonQuery();
F546445693 2014-03-19
  • 打赏
  • 举报
回复
create table sheet1 ( [0[0]] nvarchar(10), [o[1]] nvarchar(10) ) 你应该拼接处这样的语句去执行
祥子爱游戏 2014-03-19
  • 打赏
  • 举报
回复
引用 5 楼 F546445693 的回复:
那语句不应该这么写,看看有没有新增组的sql语句, 如果没有的话, 你应该先创建好表,再执行新建列,分开操作。
你看我代码了吗? 你的意思是执行一边create的吗
F546445693 2014-03-19
  • 打赏
  • 举报
回复
那语句不应该这么写,看看有没有新增组的sql语句, 如果没有的话, 你应该先创建好表,再执行新建列,分开操作。
祥子爱游戏 2014-03-19
  • 打赏
  • 举报
回复
可是只能创建一个列名,我要创建好几个列名
祥子爱游戏 2014-03-19
  • 打赏
  • 举报
回复
把alter换成creater就能行了
祥子爱游戏 2014-03-19
  • 打赏
  • 举报
回复
引用 1 楼 F546445693 的回复:
表不存在????
新建的 string strOdbcCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" + name + ";Extended Properties='Excel 8.0;'";
F546445693 2014-03-19
  • 打赏
  • 举报
回复
表不存在????
F546445693 2014-03-19
  • 打赏
  • 举报
回复
你先把你拼出来的语句掉出来看看,到sqlserver里面看下能执行吗!! 断点调试下就知道了
祥子爱游戏 2014-03-19
  • 打赏
  • 举报
回复
引用 8 楼 F546445693 的回复:
string strCom = "Create Table [Sheet1] ( " ; 
if(a.Length <=0){return;}
foreach (object o in a)
            {
                strCom +=  o.ToString() + "  varchar(20),";
            }
strCom = strCom.SubString(0,strCom.Length-1) +")";
                OleDbCommand ass = new OleDbCommand(strCom, OleDB);                
                ass.ExecuteNonQuery();
还能这样吗? 那我这样那里错了? 我不要求高,只要求能实现就行。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧