数据库中常用小技巧

以下为在用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 为压缩的驱动程序)

你可能感兴趣的:(数据库)