欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > asp.net >内容正文

asp.net

使用ADO.NET操作数据库

发布时间:2025/6/16 asp.net 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用ADO.NET操作数据库 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

如有转载的请注明出处!蟹蟹

1.1使用对象连接OLE DB 数据源

OLE DB 数据源包含具有OLE DB 驱动程序的任何数据源,如SQL Server、Access、Excel、Oracle等。

OLE DB 数据源连接字符串必须提供provide属性及其值。

语法格式为

OleDbConnection mycon = new OleDbConnection(provider=提供者;DataSource=“文件路径”);

 下面以一个案列学习一下

(1)使用OleDb方式读取Excel里的数据,并将Excel里的数据导入SqlServer数据库里

 新建一个空白网站命名DataBindDemo,添加一个web窗体命名为ReadExcel.aspx;添加一个ASP.NET文件夹里的App_Data文件用来存放Excel表;

添加一个OleDBHelper.cs,OleDB数据源操作类这样会简化一些重复的操作(这里没用到,但可以为日后用提供方便),你只需要把他引入到你的后

台代码里就行了,很方便实用。

    

1.ReadExcel.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReadExcel.aspx.cs" Inherits="DataBindDemo.ReadExcel" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title> </head> <body><form id="form1" runat="server"><div><asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="导入" /></div></form> </body> </html>

    2.ReadExcel.aspx.cs后台代码

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.OleDb; using System.Data; using System.Data.SqlClient;namespace DataBindDemo {public partial class ReadExcel : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){string strConn = string.Format(@"Provider=Microsoft.Jet.Oledb.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'", "|DataDirectory|test.xls");/*相当于连接字符串后面那个是Excel标的相对路径一定要写对,不过这里也可以改成绝对路径;直接访问你的电脑上的表,路径要写对,例如:Data Source=D:/test.xls;针对如果上连接字符串 对相关属性进行说明如下:"HDR=Yes;”指示第一行中包含列名,而不是数据,"IMEX=1;”通知驱动程序始终将“互混”数据列作为文本读取。Excel 8.0 针对Excel2000及以上版本,Excel5.0 针对Excel97。*/OleDbConnection conn = new OleDbConnection(strConn); //连接上Excel表try//进行异常处理 {conn.Open();OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [stuInfo$]",conn); //执行sql语句,找到表名为stuInfo的表DataTable dt = new DataTable();//创建一个存储数据的表adapter.Fill(dt);//将数据填充到datatable中this.Session["dt"] = dt;//将数据存储在网站Response.Write(dt.Rows[0]["stuNO"]+":"+dt.Rows[0]["stuName"]);//这样写是一行一行的输出,这里的["stuNO"]要跟Excel表中的对应Response.Write(dt.Rows[1]["stuNO"] + ":" + dt.Rows[1]["stuName"]);Response.Write(dt.Rows[2]["stuNO"] + ":" + dt.Rows[2]["stuName"]);conn.Close();}catch(Exception ex){Response.Write(ex.Message);}}//加载到数据库里protected void Button1_Click(object sender, EventArgs e){DataTable dt = this.Session["dt"] as DataTable;//调用在网站几Session存储的数据string strConn = "Data Source=.;Initial Catalog=Ole_Dbo;User ID=;Password=";//连接自己的sqlserver数据库SqlConnection conn = new SqlConnection(strConn);try{conn.Open();SqlBulkCopy bulk = new SqlBulkCopy(conn); //批量加载bulk.DestinationTableName = "stuInfo"; //服务器目标表(数据库)表名bulk.BatchSize = dt.Rows.Count; //每一批次中的行数bulk.ColumnMappings.Add("stuNO", "stuNO"); //数据源中表的列名与目标表中的列名的对应关系bulk.ColumnMappings.Add("stuName", "stuName");bulk.WriteToServer(dt); //将DataTable 表中的数据复制到目标表中 conn.Close();}catch (Exception ex){Response.Write(ex.Message);}}} }

 

     到这步已经可以读取表中的数据了    

将Excel表里的数据加载到数据库中

在页面里加一个按钮并设置按钮事件,代码.ReadExcel.aspx.cs里的按钮事件

在数据库上创建一个表

在代码里连接好自己的数据库,代码已经在按钮事件当中

运行ReadExcel.aspx,点击导入按钮,这时数据就导入到数据库表中了

强调:表中一定要设置主键,如果不设置的话,点击多次按钮,会在表中添加重复记录

  3.OleDBHelper.cs类(可以以后作为备用)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.OleDb;namespace DataBindDemo.DBHelper {/// <summary>/// OleDB数据源操作类/// </summary>public class OleDBHelper{private string strConn;private OleDbConnection conn = null;/// <summary>/// 构造数据源操作类/// </summary>/// <param name="sourceName">数据源文件名</param>public OleDBHelper(string sourceName){if (sourceName != ""){strConn = string.Format("Provider=Microsoft.Jet.Oledb.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'",sourceName);conn = new OleDbConnection(strConn);}}private void OpenConn(){if (conn != null && conn.State == ConnectionState.Closed){conn.Open();}}private void CloseConn(){if (conn != null && conn.State == ConnectionState.Open){conn.Close();}}private OleDbCommand CreateCommand(string cmdText, string[] param, object[] values){OleDbCommand myCmd = new OleDbCommand(cmdText, conn);for (int i = 0; i < param.Length; i++){myCmd.Parameters.AddWithValue(param[i], values[i]);}return myCmd;}/// <summary>/// 根据命令语句返回数据集/// </summary>/// <param name="cmdText">命令语句</param>/// <param name="param">参数数组,若没有参数可以设置为空</param>/// <param name="values">参数值数组,只有当param不为空时有效</param>/// <returns></returns>public DataTable FillDataTable(string cmdText, string[] param, object[] values){OpenConn();OleDbCommand cmd;if (param != null){cmd = CreateCommand(cmdText, param, values);}else{cmd = new OleDbCommand(cmdText, conn);}OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);DataTable dt = new DataTable();adapter.Fill(dt);CloseConn();return dt;}} }

  诶终于结束了!!累死小编了,这该死的程序员

如果你觉得不错的话,打赏一下小编吧

转载于:https://www.cnblogs.com/kalezhangtao/p/9029430.html

总结

以上是生活随笔为你收集整理的使用ADO.NET操作数据库的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。