Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Excel工作表到SQL表_C#_Sql_Excel_Wcf - Fatal编程技术网

C# Excel工作表到SQL表

C# Excel工作表到SQL表,c#,sql,excel,wcf,C#,Sql,Excel,Wcf,我得到了从UI上传的数据的Excel工作表,我需要通过WCF服务访问该工作表,并将其中包含的数据插入到SQL表中 请指导如何做到这一点 我在通过WCF服务读取Excel工作表时面临挑战。我使用以下代码从本地驱动器读取Excel工作表。将Source属性更改为excel工作表的FTP位置 string con = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\MyData.xlsx;" + @"Ex

我得到了从UI上传的数据的Excel工作表,我需要通过WCF服务访问该工作表,并将其中包含的数据插入到SQL表中

请指导如何做到这一点


我在通过WCF服务读取Excel工作表时面临挑战。

我使用以下代码从本地驱动器读取Excel工作表。将Source属性更改为excel工作表的FTP位置

string con = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\MyData.xlsx;" +
                      @"Extended Properties='Excel 8.0;HDR=Yes;'";
        using (OleDbConnection connection = new OleDbConnection(con))
        {
            connection.Open();
            OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
            using (OleDbDataReader dr = command.ExecuteReader())
            {
                while (dr.Read())
                {
                    // Do your things here
                }
            }
        }

注意:.xls有数据限制,而.xlsx支持工作表中的更多数据行。如果要读取.xlsx文件,则需要安装Microsoft Office Access数据库引擎2007。事实上,无法通过WCF服务读取excel数据。但是你可以把这些方法分类

        string UploadedFilePath = FullPathOfExcelOnTheServer;
        string ExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + UploadedFilePath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1;FMT=Delimited\"";
        using (OleDbConnection oledbConnExcel = new OleDbConnection(ExcelConn))
        {

            oledbConnExcel.Open();
            using (OleDbDataAdapter oledbAdapterExcel = new OleDbDataAdapter("SELECT * from [" + SheetName + "$]", oledbConnExcel))
            {
                using (DataTable dtblSheetData = new DataTable())
                {
                    try
                    {
                        oledbAdapterExcel.Fill(dtblSheetData);
                    }
                    catch (Exception lexQuery)
                    {

                    }
                }
            }
            oledbConnExcel.Close();
        }
你可以:

  • 读取客户端上的所有excel数据并调用WCF服务,并将excel中的所有数据作为(字符串数组)包含在参数中
  • 您可以在Excel工作表和所谓的WCF服务中创建宏(VB),并通过参数发送数据。当你把所有的逻辑都放在一个地方
  • 如果客户端是.NET端,则可以使用atribbute
    [KnowsTypeAtribbute]
    。然后可以调用参数类型为Excel类型(工作表或其他)的WCF服务。可以使用某种类型的OpenXml dll(但我不知道是sheet还是其他类型是可序列化的。需要可序列化的)
  • 您可以将路径发送到文件,并通过WCF服务从该路径读取excel文件

  • 没有SQL数据库,SQL只是结构化查询语言,许多数据库系统都使用这种语言,但它不是数据库产品。很多东西都是特定于供应商的,所以我们确实需要知道您使用的是什么具体的数据库系统(以及哪个版本)。。。。(请相应地更新标记-使用
    oracle
    db2
    sqlserver
    mysql
    postgresql
    或其他任何您可能使用的标记)客户端或服务器端是否有excel文件?@blogprogramisty.net我客户端有excel文件