資料庫中常用小技巧

來源:互聯網
上載者:User
以下為在用ADO.NET,OLE等技術在訪問ACCESS,SQL_SERVER,EXCEL過程中常遇到的問題及提示:

(1)得到表中欄位的一系列屬性,例如"是否允許為空白":
sql_Text2 = "SELECT   COLUMNPROPERTY(OBJECT_ID('" & 表名 & "'),'" & 欄位名 & "','AllowsNull')"

(2)用ADO.NET訪問資料庫時,常會需要判斷欄位的屬性,這些欄位屬性在 System.Data.SqlTypes 命名空間中,如:
 整型 :  System.Data.SqlTypes.SqlInt32                雙精確度 :  System.Data.SqlTypes.SqlDouble
 字串 : System.Data.SqlTypes.SqlString             日期 : System.Data.SqlTypes.SqlDateTime  ......

(3)得到一個資料庫中的多個表的屬性,比如得到一個MDB中多個TABLE的屬性(VB.NET):
Dim dt As Data.DataTable
dt = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
該MDB中的多個表的屬性就存在於dt中了
dt.Rows.Count    -----  得到的就是表的個數
dt.Rows.Item(第i行)("TABLE_NAME").ToString().Trim()    ----   得到的就是"第i+1"個表的名稱

(4)把EXCEL當作資料庫進行寫入的時候,常會遇到無法寫入的狀況,除了使用EXCEL控制項(如EXCEL.APPLICATION , EXCEL.WORKBOOK , EXCEL.WORKSHEET)進行操作外,還可使用以下方法(VB.NET):
        Dim path As String
        path = .xls檔案存放的路徑
        str_con = "Driver={Microsoft excel Driver (*.xls)};ReadOnly=False;DBQ=" & path
        If con.State = 1 Then
             con.Close()
        End If
        con.Open(str_con)
        ......具體操作
        con.Close

(5)最後,在做ASP.NET時候,IIS支援EXCEL進行下載,但不支援ACCESS檔案下載(不然會造成網站的安全性問題) ; 針對此情況,在我們小型系統開發中,可以將ACCESS檔案壓縮成RAR檔案從而提供下載,以下為 ACCESS -> RAR 的壓縮過程(ASP.NET(VB)實現):

                '將 MDB 壓縮為 RAR 檔案
                Dim RAR_EXE As String
                Dim Source As String
                Dim Target As String
                Dim FileString As String

                RAR_EXE = Server.MapPath("Data\WinRAR.exe")
                Source = Server.MapPath(.mdb檔案的相對目錄)
                Target = Server.MapPath(壓縮將產生的.rar檔案儲存相對目錄)

                '如果原 RAR 檔案存在,則先刪除
                If System.IO.File.Exists(Target) Then
                    System.IO.File.Delete(Target)
                End If

                '開始執行壓縮檔
                FileString = RAR_EXE + " A " + Target + " " + Source
                Shell(FileString, AppWinStyle.Hide)
解壓縮也類似,把 FileString  中的參數 A 改成 X 就可以了~

注意:無論"壓縮"還是"解壓縮",在操作之前必須把 WINRAR.EXE 存放於將要網站(可以理解為 WINRAR.EXE 為壓縮的驅動程式)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.