
如果是导入数据到现有表,则采用形式
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 Systemusing 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()
}
}
}
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)