怎么用VS2008编程实现把数据库导入到EXCEL表中和把EXCEL表中数据导入到数据库求代码

怎么用VS2008编程实现把数据库导入到EXCEL表中和把EXCEL表中数据导入到数据库求代码,第1张

#region 连接Excel 读取Excel数据 并返回DataSet数据集合

/// <summary>

/// 连接Excel 读取Excel数据 并返回DataSet数据集合

/// </summary>

/// <param name="filepath">Excel服务器路径</param>

/// <param name="tableName">Excel表名称</param>

/// <returns></returns>

public static System.Data.DataSet ExcelSqlConnection(string filepath, string tableName)

{

string strCon = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" + filepath + "Extended Properties='Excel 8.0HDR=YESIMEX=1'"

OleDbConnection ExcelConn = new OleDbConnection(strCon)

try

{

string strCom = string.Format("SELECT * FROM [Sheet1$]")

ExcelConn.Open()

OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, ExcelConn)

DataSet ds = new DataSet()

myCommand.Fill(ds, "[" + tableName + "$]")

ExcelConn.Close()

return ds

}

catch

{

ExcelConn.Close()

return null

}

}

#endregion

#region 导入的execl

protected void Button2_Click(object sender, EventArgs e)

{

SqlConnection cn = new BSqlDataProvider().GetSqlConnection()

cn.Open()

if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件

{

Response.Write("<script>alert('请您选择Excel文件')</script>")

return//当无文件时,返回

}

string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower()//System.IO.Path.GetExtension获得文件的扩展名

if (IsXls != ".xls")

{

Response.Write("<script>alert('只可以选择Excel文件')</script>")

return//当选择的不是Excel文件时,返回

}

string filename = FileUpload1.FileName //获取Execle文件名 DateTime日期函数

string savePath = Server.MapPath(("~\\upfiles\\") + filename)//Server.MapPath 获得虚拟服务器相对路径

FileUpload1.SaveAs(savePath) //SaveAs 将上传的文件内容保存在服务器上

DataSet ds = ExcelSqlConnection(savePath, filename) //调用自定义方法

DataRow[] dr = ds.Tables[0].Select() //定义一个DataRow数组

int rowsnum = ds.Tables[0].Rows.Count

if (rowsnum == 0)

{

Response.Write("<script>alert('Excel表为空表,无数据!')</script>") //当Excel表为空时,对用户进行提示

}

else

{

for (int i = 0i <dr.Lengthi++)

{

string spdm = dr[i]["商品代码"].ToString()//日期 excel列名

string jijie = dr[i]["季节"].ToString()

string boduan = dr[i]["波段"].ToString()

string s_chan = dr[i]["生产商"].ToString()

string f_shi = dr[i]["方式"].ToString()

string c_ku = dr[i]["仓库"].ToString()

string insertstr = "insert into AA_ANSD values('"+spdm+"','"+jijie+"','"+boduan+"','"+s_chan+"','"+f_shi+"','"+c_ku+"')"

SqlCommand cmd = new SqlCommand(insertstr, cn)

try

{

cmd.ExecuteNonQuery()

}

catch (MembershipCreateUserException ex) //捕捉异常

{

Response.Write("<script>alert('导入内容:" + ex.Message + "')</script>")

}

}

Response.Write("<script>alert('Excle表导入成功!')location='CMT_Entry.aspx?CMD=0'</script>")

}

cn.Close()

}

#endregion

快给分 啊

这个明显是WinForm的吧。

1、新建数据库

USE [master]

GO

/****** Object: Database [数据库名]Script Date: 09/12/2014 16:56:48 ******/

CREATE DATABASE [数据库名] ON PRIMARY

( NAME = N'数据库名', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\数据库名.mdf' , SIZE = 80896KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )

LOG ON

( NAME = N'数据库名_log', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\数据库名_log.LDF' , SIZE = 22144KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)

GO

2、建立数据表

USE[数据库名]

GO

CREATE TABLE [个人信息] (

[ID] [int] IDENTITY (1, 1) NOT NULL,

[姓名] [nvarchar] (50) NOT NULL DEFAULT (''),

[性别] [nvarchar] (1) NOT NULL DEFAULT (''),

[年龄] [int] NOT NULL DEFAULT (0),

[籍贯] [nvarchar] (50) NOT NULL DEFAULT (''),

[所在地] [nvarchar] (4000) NOT NULL DEFAULT (''))

/****其它字段自行添加****/

ALTER TABLE [AccessList] WITH NOCHECK ADD CONSTRAINT [PK_个人信息] PRIMARY KEY NONCLUSTERED ( [ID] )

3、点击button后,确认添加个人信息时:

INSERT [个人信息] ([姓名],[性别],[年龄],[籍贯]) VALUES ( '"+ txtXM.Text.Trim()+"','"+cbxXB.Text.Trim()+"',"+ txtNL.Text.Trim()+",'"+txtJG.Text.Trim()+"')

SQL语句,尽量使用参数,避免SQL注入。


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

原文地址: https://outofmemory.cn/sjk/6662199.html

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

发表评论

登录后才能评论

评论列表(0条)

保存