我工作的公司有一个新项目。两名员工将访问每家商店以记录一些信息。项目很简单,我们只想将两名员工收集的数据插入到sql数据库中。
不幸的是,这两名员工只有一台离线的笔记本电脑。所以,我不能使用同步技术来插入数据。
我的解决方案是允许两名员工在Excel工作表中写入数据,然后我尝试找到一种方法将该Excel工作表插入到sql数据库中。
是否可以将excel表插入sql数据库?
请问有更好的解决方案吗?
数据库非常简单,它只是一个包含三列的表。 ID
,StoreName
和StoreProductsNumber
答案 0 :(得分:1)
或者您可以安排这样的查询在服务器上运行并自动同步:
INSERT INTO database..table(ID,StoreName,StoreProductsNumber)
SELECT
1 AS ID,
LTRIM(RTRIM([StoreName])),
LTRIM(RTRIM([StoreProductsNumber])),
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\folder\excelfile.xls','select * from [sheet1$]')
答案 1 :(得分:1)
试试这个
public string GetDataTableOfExcel(string file_path)
{
using (OleDbConnection conn = new OleDbConnection())
{
DataTable dt = new DataTable();
string Import_FileName = Server.MapPath(file_path);
//Import_FileName = System.IO.Path.GetDirectoryName(file_path);
string fileExtension = Path.GetExtension(Import_FileName);
if (fileExtension == ".xlsx")
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'";
using (OleDbCommand comm = new OleDbCommand())
{
comm.CommandText = "Select * from [Sheet1$]";
comm.Connection = conn;
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = comm;
da.Fill(dt);
}
}
}
}
现在您在DataTable中的数据。您可以从数据表的数据创建插入查询。
file_path是excel文件的目录名的完整路径。
答案 2 :(得分:0)
通过SQL服务器的导入功能,你可以实现它......
http://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/
答案 3 :(得分:0)
这可以使用导入/导出工具来实现。我会尝试添加一些可以帮助您完成整个过程的stwps。
您也可能有兴趣观看此视频,该视频谈论完全相同的事情。
http://www.youtube.com/watch?v=GG2N2iI0W3M
希望这有帮助。