以下为在用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)实现):
(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 就可以了~
浙公网安备 33010602011771号