注册 登录
编程论坛 ASP.NET技术论坛

请问怎样从Excel中读取数据,再存进数据库里?

cydesign 发布于 2006-12-01 23:39, 4590 次点击
我只能实现从excel读取然后在datagrid显示出来。但我是新手,不知道怎么才能改到直接存进数据库(sql 2000)里?
49 回复
#2
bygg2006-12-01 23:58
只有本站会员才能查看附件,请 登录

#3
cydesign2006-12-02 00:09

谢谢,先研究一下。

#4
cydesign2006-12-02 00:10
啊。我不是要这个。我要的是.net的。
#5
bygg2006-12-02 00:49
呵呵,.net里的用法和这个一样,你只需把里面的控件换了.代码只改得了一点点.
相信你这点可以做到的.
#6
小天狼星2006-12-02 10:12
to bygg:
你写的是用的读取文件的方法吗?
#7
willsoncool2006-12-02 12:38
只是链接字符串不等而已,小弟.

#8
cydesign2006-12-02 12:51

晕?这还没实现把excel里面的数据保存到sql里面阿!

[此贴子已经被作者于2006-12-2 12:52:47编辑过]

#9
bygg2006-12-02 13:26
以下是引用小天狼星在2006-12-2 10:12:09的发言:
to bygg:
你写的是用的读取文件的方法吗?

不是的,其实EXCEL就相当于一个数据库.用法一样.

#10
bygg2006-12-02 13:28
以下是引用cydesign在2006-12-2 12:51:04的发言:

晕?这还没实现把excel里面的数据保存到sql里面阿!


先不要晕啊.呵呵
你可以将显示在DataGrid里面的数据放在数据集里或者数据表里,再一起保存到数据中.

#11
cydesign2006-12-02 13:54
以下是引用bygg在2006-12-2 13:28:31的发言:

先不要晕啊.呵呵
你可以将显示在DataGrid里面的数据放在数据集里或者数据表里,再一起保存到数据中.


我就是不会阿!我是新手阿,我基本上没有什么基础的。你能给出那样的源代码么?拜托了!谢谢!

#12
漯河2006-12-02 14:37

是不是要用到循环

#13
cydesign2006-12-02 16:29

急切等待ing……

#14
bygg2006-12-02 20:07
https://bbs.bc-cn.net/viewthread.php?tid=106771
你看看这个帖子,可能对你有用.
#15
606liutong2006-12-02 21:34
我以前怎么没有看到呢?

#16
cydesign2006-12-03 12:46
以下是引用bygg在2006-12-2 20:07:09的发言:
https://bbs.bc-cn.net/viewthread.php?tid=106771
你看看这个帖子,可能对你有用.

谢谢。那我先看看。

#17
cydesign2006-12-04 11:32
我太菜了!
虽然我勉强看得懂,但是我不知道怎么用阿!
我要怎样、加上什么才能使他在.net下用呢?
#18
cydesign2006-12-04 17:03

阿。。。。。神阿救救我吧~一把年纪了,一个程序也没有~~~

#19
cydesign2006-12-04 23:07

斑竹哥哥呢?

#20
bygg2006-12-04 23:09
你是哪里看不明白呢?
#21
给心加点温2006-12-05 09:11

晕呢,把取出来的值不绑定到datagrid上,而是把放到数据集里,然后在放入数据库中~~~
只可惜我不晓得怎么从Eexl中读书数据!~
上面那个仁兄 能否告知一二~~`

#22
cydesign2006-12-05 09:53

我是不明白那几段代码我应该怎么调用?要添加什么控件在页面文件?

[此贴子已经被作者于2006-12-5 9:54:57编辑过]

#23
给心加点温2006-12-05 10:56
  哈哈,这哈给你代码的那个斑竹不在线,他去学日语去了  回来了我帮你叫他来给你说~~  
#24
给心加点温2006-12-05 11:17

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel files(*.xls)|*.xls";

SqlConnection sqlConnection1 = null;

if(openFileDialog.ShowDialog()==DialogResult.OK)
{
string filePath = openFileDialog.FileName;

sqlConnection1 = new SqlConnection();
sqlConnection1.ConnectionString = "server=(local);integrated security=SSPI;initial catalog=Library";

//import excel into SQL Server 2000
/*string importSQL = "SELECT * into live41 FROM OpenDataSource" +
"('Microsoft.Jet.OLEDB.4.0','Data Source=" + "\"" + "E:\\022n.xls" + "\"" +
"; User ID=;Password=; Extended properties=Excel 5.0')...[Sheet1$]";*/

//export SQL Server 2000 into excel
string exportSQL = @"EXEC master..xp_cmdshell
'bcp Library.dbo.live41 out " + filePath + "-c -q -S" + "\"" + "\"" +
" -U" + "\"" + "\"" + " -P" + "\"" + "\"" + "\'";

try
{
sqlConnection1.Open();

//SqlCommand sqlCommand1 = new SqlCommand();
//sqlCommand1.Connection = sqlConnection1;
//sqlCommand1.CommandText = importSQL;
//sqlCommand1.ExecuteNonQuery();
//MessageBox.Show("import finish!");

SqlCommand sqlCommand2 = new SqlCommand();
sqlCommand2.Connection = sqlConnection1;
sqlCommand2.CommandText = exportSQL;
sqlCommand2.ExecuteNonQuery();
MessageBox.Show("export finish!");
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

if(sqlConnection1!=null)
{
sqlConnection1.Close();
sqlConnection1 = null;
}
我也是COPY的别人的,漫漫研究吧~~~

#25
bygg2006-12-05 11:33
以下是引用cydesign在2006-12-5 9:53:49的发言:

我是不明白那几段代码我应该怎么调用?要添加什么控件在页面文件?


Excel-->DataGrid :这个过程就是我发的那个里面;
DataGrrid-->数据库 :放个按钮,把24楼朋友的代码Copy进去,再改改就行了。

#26
cydesign2006-12-05 12:29
以下是引用bygg在2006-12-5 11:33:24的发言:

Excel-->DataGrid :这个过程就是我发的那个里面;
DataGrrid-->数据库 :放个按钮,把24楼朋友的代码Copy进去,再改改就行了。


具体要改什么呢?不要说得那么简略阿!我真的不会阿!

#27
cydesign2006-12-05 13:00
还有,OpenFileDialog 和 MessageBox要添加什么命名空间呢?
#28
cydesign2006-12-05 16:49
看来斑竹哥哥每天固定时间上来哦
#29
bygg2006-12-05 20:32
以下是引用cydesign在2006-12-5 13:00:40的发言:
还有,OpenFileDialog 和 MessageBox要添加什么命名空间呢?

web 里面没有 OpenFileDialog ; 用Filed
也没有 MessageBox; 用Response.Write(.......);
我建议你还是先看看基础点的东西,先不要急着弄这些,呵呵.

#30
cydesign2006-12-05 21:00
以下是引用bygg在2006-12-5 20:32:44的发言:

web 里面没有 OpenFileDialog ; 用Filed
也没有 MessageBox; 用Response.Write(.......);
我建议你还是先看看基础点的东西,先不要急着弄这些,呵呵.

没什么时间从头学了,我现在要做课程设计。
可以麻烦你修改一下做好传上来吗?我不知道怎么搞,好晕~

#31
cydesign2006-12-06 12:26

等待救援~~~~

#32
cydesign2006-12-06 18:54

继续等待~

#33
cydesign2006-12-06 23:16

今天晚上斑竹为什么没解答呢?

#34
bygg2006-12-06 23:47
我电脑中毒了,好想哭哦,里面重要的东西都没有了,555555555555555555
现在只能看看网站,还有就是想办法把数据搞回来,我也想帮你解决啊,但是...............

(不好意思啦)
#35
guming2006-12-06 23:53
你将从Excel中读到的数据填充到DataSet对象中,再将各个字段的值赋给变量,再插入到数据库中,,,如:
string i=thisDS.Tables["表名"].Rows[行标]["字段名1"].ToString();
string j=thisDS.Tables["表名"].Rows[行标]["字段名2"].ToString();
string k=thisDS.Tables["表名"].Rows[行标]["字段名2"].ToString();
然后,就将变量的值写到数据库中,,,,
#36
live412006-12-07 00:03
#37
cydesign2006-12-07 12:26
以下是引用bygg在2006-12-6 23:47:04的发言:
我电脑中毒了,好想哭哦,里面重要的东西都没有了,555555555555555555
现在只能看看网站,还有就是想办法把数据搞回来,我也想帮你解决啊,但是...............

(不好意思啦)

原来如此!希望你能早日解决病毒~然后再帮我解决这个问题,呵呵^_^

#38
cydesign2006-12-07 12:28
以下是引用guming在2006-12-6 23:53:52的发言:
你将从Excel中读到的数据填充到DataSet对象中,再将各个字段的值赋给变量,再插入到数据库中,,,如:
string i=thisDS.Tables["表名"].Rows[行标]["字段名1"].ToString();
string j=thisDS.Tables["表名"].Rows[行标]["字段名2"].ToString();
string k=thisDS.Tables["表名"].Rows[行标]["字段名2"].ToString();
然后,就将变量的值写到数据库中,,,,


我太菜了,你不给出完整的代码我是不会做的~唉~

#39
cydesign2006-12-07 12:29
以下是引用live41在2006-12-7 0:03:24的发言:
https://bbs.bc-cn.net/viewthread.php?tid=106771

代码不完整我不会怎样使用阿!而且他提供下载的也有出错运行不了?

#40
cydesign2006-12-08 23:52
问题还没解决呢!呜呜
#41
cydesign2006-12-10 22:03

不知道版主搞定了么?

#42
cydesign2006-12-12 21:59
bygg斑竹呢?系统还没搞好吗?
#43
bygg2006-12-12 22:31

好了,你的怎么还没搞好哦??
https://bbs.bc-cn.net/viewthread.php?tid=106771
你好好看看这个啊,应该就可以做好了的啊,这两天我也有点事情.

#44
cydesign2006-12-13 09:21

我是能勉强看懂,但具体怎么实现我不知道啊!

#45
cydesign2006-12-15 10:17
还没解决~唔唔唔~
#46
无聊的爱2006-12-16 21:19
我学会了....
#47
梁微642008-09-12 18:33
对于我们初学者来说,真是不晕,都不行!!
#48
雪雨星风2008-09-19 10:03
string sql_excel = "select 姓名,身份证号,性别,出生日期,手机,电话,通信地址,邮编,电子邮箱,所在院校,工作单位,批次,认证种类,拟考等级,考试科目 from opendatasource( 'microsoft.jet.oledb.4.0','data source=" + excelpath + ";user id=admin;password=;extended properties=excel 5.0')...[Sheet1$]";
                 SqlConnection myconn = DB.mysqlconnection();
                 myconn.Open();
                 SqlDataAdapter sda = new SqlDataAdapter(sql_excel, myconn);
                 DataSet ds = new DataSet();
                 sda.Fill(ds);
                 if (ds.Tables[0].Rows.Count != 0)
                 {
                     int y;
                     for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                     {
#49
雪雨星风2008-09-19 10:07
你的数据库若是在远端服务器上就用这个查询   
得到的结果保存在dateset里面
用寻欢insert到数据库中就可以了
#50
雪雨星风2008-09-19 10:08
string sql_excel = "select certificate_number,certificate_sex,certificate_name,certificate_identity,certificate_class,certificate_date,certificate_category,";
                sql_excel += "certificate_rate from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HOR=YES;DATABASE=" + filpath + "',Sheet1$)";
                //     读elcel文件   查询excel文件中的第一行字段                          hor为yes时,语句会把第一行做为列名   这个要注意,它是excel中下边的标签名
1