SqlConnection conn = new SqlConnection(GlobalParams.connectString.ToString());
            SqlCommand cmd = null;
            try
            {
                string path = @"C:\test.xls";
                conn.Open();
                string sql = "SELECT * INTO newTable4 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source='" + path + "';Extended properties=Excel 5.0')...[sheet1$]";
                cmd = new SqlCommand(sql, conn);
                MessageBox.Show(cmd.ExecuteNonQuery().ToString());
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                conn.Close();
                cmd.Dispose();
            }
出现错误说:'C'附近有语法错误。?怎么解决呢

解决方案 »

  1.   

    4.0','Data ,逗号改为冒号试试
      

  2.   

    这样就变成了":"附近有错误了。 string path = @"C:\test.xls";和'Data Source='" + path + "';衔接的地方是不是不对呢?
      

  3.   

    string path = @"C:\test.xls";
    改成string path = @"C:\\test.xls";
      

  4.   

    改成string path = @"C:\\test.xls";后还是'C'附近有语法错误,测试把sql改成其他的查询或者是插入语句都是正确的,说明是这个连接字符串的问题。。
      

  5.   


      SqlConnection conn = new SqlConnection(GlobalParams.connectString.ToString());
                SqlCommand cmd = null;
                try
                {
                    string path = @"C:\test.xls";
                    conn.Open();
                   string sql = "SELECT * INTO newTable4 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=" + path + ";Extended properties=Excel 5.0')...[sheet1$]";
                    cmd = new SqlCommand(sql, conn);
                    MessageBox.Show(cmd.ExecuteNonQuery().ToString());
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    conn.Close();
                    cmd.Dispose();
                }