请教如何将excle上面的数据批量导入至sql2008数据库

请教如何将excle上面的数据批量导入至sql2008数据库,第1张

在查询分析器里,直接写 SQL语句:

如果是导入数据到现有表,则采用形式

INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0HDR=YESDATABASE=c:\test.xls',sheet1$)

如果是导入数据并新增表,则采用形式

SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0HDR=YESDATABASE=c:\test.xls',sheet1$)

SQL2005中直接可以实现导入功能 SQL2008不知道可不可以。 *** 作过程如下:

第一步:登录到 SQL Server Management Studio

第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在d出列表中单击 “导入数据 ”

第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)

第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”

第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。

你可以直接在查询分析器里建一个链接把EXECL文件当作一个数据库,然后通过SQL语句来实现你需要的功能,有了链接,只要你的表明和EXECL的SHEET的名字对应这个循环很容易实现的其实检举

justin_wkf

的意见也是很好的

using System

using System.Collections.Generic

using System.Linq

using System.Text

using System.IO

using System.Data.SqlClient

using System.Data

namespace ImportImage

{

    class Program

    {

        static void Main(string[] args)

        {

            string conn = "server=.database=testDBUid=saPwd=sa "

            using (SqlConnection myconn = new SqlConnection(conn))

            {

                myconn.Open()

                using (SqlCommand mycomm = new SqlCommand())

                {

                    DirectoryInfo dir = new DirectoryInfo(@"C:\Users\Administrator\Documents\Visual Studio 2008\Projects\DaWuAnswer\DaWuAnswer\images")

                    foreach (FileInfo item in dir.GetFiles("*.jpg"))

                    {

                        string str = string.Format("insert into [数据库中的表的名字] (imagAns) values(@file)", item.Name)//假设你的id是自动增长的

                        mycomm.CommandText = str

                        mycomm.Connection = myconn

                        FileStream fs = new FileStream(item.FullName, FileMode.Open)

                        BinaryReader br = new BinaryReader(fs)

                        Byte[] byData = br.ReadBytes((int)fs.Length)

                        fs.Close()

                        mycomm.Parameters.Add("@file", SqlDbType.Binary, byData.Length)

                        mycomm.Parameters["@file"].Value = byData

                        mycomm.ExecuteNonQuery()

                    }

                }

            }

        }

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6808832.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存