日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

asp.net

使用ADO.NET操作数据库

發布時間:2025/6/16 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用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操作数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。