我用c#连接上excel
OleDbConnection myConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\book1.xls;Extended Properties=Excel 8.0;");
myConn.Open();
比如说,我要显示Sheet1中的数据,就要写成[Sheet1$]
    OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", myConn);//[ning$]如果直接写ning,会提示找不到
    DataSet ds = new DataSet();
    da.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0];
请问一下,如果我要新建一个表
create table person(pid int,name varchar(50))
这个表名应该怎么写啊?
我写成create table person(pid int,name varchar(50))
它提示Microsoft Jet数据库找不到对象
如果写成create table [person$] (pid int,name varchar(50))
又提示不是一个合法的名称
请问表名应该怎么写?

解决方案 »

  1.   

    我没怎么操作过 excel  不太懂
    我理解中的excel要么就新建吧。哪来的什么创建表?
    帮你找了一篇文章 不知道对你有没有什么帮助
    http://www.soft6.com/tech/12/125496.html
      

  2.   

    SELECT * FROM [Sheet1$]
    这样写是正确的,确保你的工作表有Sheet1这个work sheet另外,提示找不到的是什么?
      

  3.   

    除了3楼说的你看你操作的是什么版本的。Provider=Microsoft.Jet.OLEDB.12.0;Data Source=f:\book1.xls;Extended Properties=Excel 12.0;都改12
      

  4.   

    要在 Excel 工作簿中创建表,请运行 CREATE TABLE 命令:
     
    CREATE TABLE Sheet1 (pid int, name char(255))
      

  5.   

    例子
    OleDbConnection myConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\book1.xls;Extended Properties='Excel 8.0;'");
    myConn.Open();
    OleDbCommand cmd1 = newOleDbCommand();
    cmd1.Connection = myConn;
    cmd1.CommandText = "CREATE TABLE EmployeeData (Id char(255), Name char(255), BirthDate date)";
    cmd1.ExecuteNonQuery();
    cmd1.CommandText = "INSERT INTO EmployeeData (Id, Name, BirthDate) values ('AAA', 'Andrew', '12/4/1955')";
    cmd1.ExecuteNonQuery();
    myConn.Close();
      

  6.   

    根本就没有Microsoft.Jet.OLEDB.12.0,而且Excel 12.0也不是默认支持的,要安装了OFF2007以上的版本才有。