Excel 表数据如何导入数据库Server 2000

qq914719979 2009-10-11 09:47:49
Excel 表数据如何导入数据库Server 2000 希望有代码详细解释,谢谢呵呵!!在线等。。最迟2个小时,结帖子。
...全文
277 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
jensoncyy 2011-07-27
  • 打赏
  • 举报
回复
好啊,具体的实现步骤。
沪下九头鸟 2011-06-08
  • 打赏
  • 举报
回复
偶是新人 路过
qq914719979 2009-10-11
  • 打赏
  • 举报
回复
全给完了,大家散了哦,拜拜。
qq914719979 2009-10-11
  • 打赏
  • 举报
回复
你错了,是这样写的,所有代码大揭晓:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Data.OleDb;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{

if (FileUpload1.FileName == "")
return;
string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName);
if (fileExt != ".xls")//必须是EXCEL文件
return;
string filepath = FileUpload1.PostedFile.FileName;//文件路径
DataTable dt = new DataTable();
dt = CallExcel(filepath);//返回EXCEL文件的数据
if (InsertSQLServer(dt, FileUpload1.FileName.Split('.')[0]))//导入数据库
{}
}

protected DataTable CallExcel(string filepath)
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0");
con.Open();
string sql = "select * from [Sheet1$]";//选择第一个数据SHEET
//OleDbCommand command = new OleDbCommand(sql, con);
//OleDbDataReader reader = command.ExecuteReader();
//if (reader.Read())
//{
// reader[0].ToString();//直接读出数据
//}
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, con);
DataTable dt = new DataTable();
adapter.Fill(dt);
//reader.Close();
//command.Dispose();
con.Close();
con.Dispose();
return dt;
}

protected bool InsertSQLServer(DataTable dt,string dataname)
{
string strCon = @"server=xxx.xxx.xxx.xxx;database=TableName;uid=sa;pwd=";
try
{
SqlConnection con = new SqlConnection(strCon);//连接数据库
con.Open();//打开

//插入数据
for(int i=0;i<dt.Rows.Count;i++)
{
string strSQL = " Insert into one values (";
for (int k = 0; k < dt.Columns.Count; k++)
{
strSQL += "'"+dt.Rows[i][k].ToString()+"',";
}
strSQL = strSQL.Substring(0, strSQL.Length - 1);
strSQL += ")";
SqlCommand insertCom = new SqlCommand(strSQL, con);
insertCom.ExecuteNonQuery();
}
return true;
}
catch
{
return false;
}
}

}


不会写的兄弟姐妹 门,你们把代码全复制,粘贴,只需要把数据库的连接字符串该下
然后就是excel表中的字段要和数据库中建立的表的字段一样,要一样.然后就OK了..
给分数了,所有回答的人都有分..
SQL77 2009-10-11
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 qq914719979 的回复:]
就是Insert语句不会写,不知道怎么写....好难过 啊,6楼的参考,的最后一个方法写一下了谢谢哦,SQL77,结贴的时候会给你分的,呵呵。。不过不是全分,不过肯定10+
[/Quote]
INSERT TB SELECT * FROM TB1
??
这样类似,呵呵

insert 库名.dbo.表名 (列名1,列名2) 
SELECT 列名1,列名2
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

qq914719979 2009-10-11
  • 打赏
  • 举报
回复
就是Insert语句不会写,不知道怎么写....好难过 啊,6楼的参考,的最后一个方法写一下了谢谢哦,SQL77,结贴的时候会给你分的,呵呵。。不过不是全分,不过肯定10+
SQL77 2009-10-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 qq914719979 的回复:]
.....好复杂哦,你们能帮我个忙不??我数据库中已经有一个表了,就是把Excel的数据插入到表里面,我看了参考了,感觉这个比较适合我的水平,不过在插入数据的时候出了点问题,因为没看懂》》》》

谁可以具体写一下代码谢谢了,不建立数据库,和表,直接插入数据。。比如表里面2个字段,一个username,一个pwd,谢谢了。
protected bool InsertSQLServer(DataTable dt,string dataname)
{
}
[/Quote]
呵呵,你要程序的呀,不懂,SQL的简单
qq914719979 2009-10-11
  • 打赏
  • 举报
回复
.....好复杂哦,你们能帮我个忙不??我数据库中已经有一个表了,就是把Excel的数据插入到表里面,我看了参考了,感觉这个比较适合我的水平,不过在插入数据的时候出了点问题,因为没看懂》》》》

谁可以具体写一下代码谢谢了,不建立数据库,和表,直接插入数据。。比如表里面2个字段,一个username,一个pwd,谢谢了。
protected bool InsertSQLServer(DataTable dt,string dataname)
{
}
SQL77 2009-10-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 qq914719979 的回复:]
SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions 

把这个复制吗??改路径是把c:\test.xls 该成我文件的路径吗??
[/Quote]

SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

这两个要更改的,那个路径改为你的,后面的那个改为 sheet1$这种格式
qq914719979 2009-10-11
  • 打赏
  • 举报
回复
原来参考是一个超链接啊,我咋越来越喜欢你了类呵呵。。。。。我估摸这快成功了。我尝试一下啊,成功了就给分哦。。
qq914719979 2009-10-11
  • 打赏
  • 举报
回复
SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

把这个复制吗??改路径是把c:\test.xls 该成我文件的路径吗??
qq914719979 2009-10-11
  • 打赏
  • 举报
回复
不是啊,我是一个程序中的,是上传文件,然后把上传的excel的数据存到数据库中的,怪我没有说清楚..该打该打
SQL77 2009-10-11
  • 打赏
  • 举报
回复
 /******* 导出到excel  
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'

/*********** 导入Excel
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

/*动态文件名
declare @fn varchar(20),@s varchar(1000)
set @fn = 'c:\test.xls'
set @s ='''Microsoft.Jet.OLEDB.4.0'',
''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0'''
set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$'
exec(@s)
*/

SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

/********************** EXCEL导到远程SQL
insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名 (列名1,列名2)
SELECT 列名1,列名2
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions



直接复制过去,改一下文件名,路径OK
SQL77 2009-10-11
  • 打赏
  • 举报
回复
或者用SQL自带的导入导出工具DTS,
qq914719979 2009-10-11
  • 打赏
  • 举报
回复
拜托了,咱的IT水平不怎么高,真的,难得问个有点水平的问题,多给点注释好不好.55555555555555哭
SQL77 2009-10-11
  • 打赏
  • 举报
回复
Update:2007.4.3
Author:Hougate
sql导出到Excel
从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:
/*===================================================================*/
--如果接受数据导入的表已经存在
insert into 表 select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
--如果导入数据并生成表
select * into 表 from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)


直接用SQL
dqw120 2009-10-11
  • 打赏
  • 举报
回复
直接用SQL Server的所有任务的到如何导出就好了
wuyq11 2009-10-11
  • 打赏
  • 举报
回复
wuyq11 2009-10-11
  • 打赏
  • 举报
回复
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

先上传文件,再打开excel
if(File.Exists(strPathName))
{
book=(Excel._Workbook)(app.Workbooks.Open(strPathName,Missing.Value, Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value, Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value));
}
else
{
Response.Write(" <script language='javascript'>alert('请上传需要到入的数据文件') </script>");
return ;
}
using(SqlConnection conn=new SqlConnection(ConnectionString))
{
SqlDataAdapter da=new SqlDataAdapter(Sql,conn);
System.Data.SqlClient.SqlCommandBuilder scb=new SqlCommandBuilder(da);
sheet=(Excel._Worksheet)book.Worksheets[1];
for(int i=1;i <=sheet.Rows.Count;i++)
{
dr=ds.Tables[0].NewRow();
//循环导入数据
ds.Tables[0].Rows.Add(dr);
}
da.Update(ds);
}
qq914719979 2009-10-11
  • 打赏
  • 举报
回复
我看看哦,还没有听说过MyXls的..尴尬。。
加载更多回复(3)

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧