集中整理ArcEngin在VB环境下开发时用到的资料.docx
- 文档编号:10286629
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:23
- 大小:19.83KB
集中整理ArcEngin在VB环境下开发时用到的资料.docx
《集中整理ArcEngin在VB环境下开发时用到的资料.docx》由会员分享,可在线阅读,更多相关《集中整理ArcEngin在VB环境下开发时用到的资料.docx(23页珍藏版)》请在冰豆网上搜索。
集中整理ArcEngin在VB环境下开发时用到的资料
集中整理VB.NET操作ACCESS
一,功能:
1,对access数据库显示绑定(不同方式的显示)、添加、删除、更新、以及查询(不同方式的查询);
2,建立新的accessmdb文件,新建表,添加(删除)字段,及定义字段数据类型
二,源代码如下:
ImportsSystem.Data.OleDb
ImportsADODB
PublicClasssqlAccess
#Region"Private"
PrivateConnectionStrAsString=""
PrivateConnAsOleDb.OleDbConnection
#EndRegion
#Region"subnew"
SubNew(ByValAccessFileNameAsString)
ConnectionStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&AccessFileName
Conn=NewOleDb.OleDbConnection(ConnectionStr)
EndSub
SubNew()
EndSub
#EndRegion
#Region"显示数据"
PublicSubShowRecords(ByValDGAsDataGridView,ByValAccesTableNameAsString)
DimsqlStringAsString="SELECT*FROM "&AccesTableName
DG.ReadOnly=True
DimmyDataSetAsNewDataSet()
UsingConn
Conn.Open()
DimmyCommandAsOleDbDataAdapter=NewOleDbDataAdapter(sqlString,Conn)
myCommand.Fill(myDataSet,AccesTableName)
DG.DataSource=myDataSet.Tables(0)
Conn.Close()
EndUsing
EndSub
PublicSubShowRecords(ByValDGAsDataGridView,ByValAccesTableNameAsString,ByValcolsAsCollection)
DimsqlStringAsString="SELECT"
DimiAsInteger
Fori=1Tocols.Count-1
sqlString=sqlString&cols.Item(i)&","
Next
sqlString=sqlString&cols.Item(cols.Count)
sqlString=sqlString&"from"&AccesTableName
DG.ReadOnly=True
DimmyConnAsNewOleDb.OleDbConnection(ConnectionStr)
DimmyDataSetAsNewDataSet()
UsingmyConn
myConn.Open()
DimmyCommandAsOleDbDataAdapter=NewOleDbDataAdapter(sqlString,myConn)
myCommand.Fill(myDataSet,AccesTableName)
DG.DataSource=myDataSet.Tables(0)
myConn.Close()
EndUsing
EndSub
PublicFunctionShowRecords(ByValAccessTableNameAsString)AsDataTable
DimsqlStringAsString="SELECT*FROM "&AccessTableName
DimmyDataSetAsNewDataSet
UsingConn
Conn.Open()
DimmyCommandAsOleDbDataAdapter=NewOleDbDataAdapter(sqlString,Conn)
myCommand.Fill(myDataSet,AccessTableName)
Conn.Close()
ReturnmyDataSet.Tables(0)
EndUsing
EndFunction
#EndRegion
#Region"添加数据"
PublicSubAddRecord(ByValDGAsDataGridView,ByValAccesTableNameAsString,_
ByValColsAsCollection,ByValValsAsCollection)
DimsqlStringAsString="insertinto"&AccesTableName&"("
DimiAsInteger
Fori=1ToCols.Count-1
sqlString=sqlString&Cols.Item(i).ToString&","
Next
sqlString=sqlString&Cols.Item(Cols.Count).ToString&")values("
Fori=1ToVals.Count-1
sqlString=sqlString&"?
"
Next
sqlString=sqlString&"?
)"
'时间表达式2009-12-2
'货币相当字符串如:
"333"添加后显示"¥333.00"
'ole对象,相当于二进制的数组
DimmyConnAsNewOleDb.OleDbConnection(ConnectionStr)
UsingmyConn
myConn.Open()
DimmyCommandAsOleDbCommand=NewOleDbCommand(sqlString,myConn)
Fori=1ToVals.Count
myCommand.Parameters.Add(NewOleDb.OleDbParameter).Value=Vals(i)
Next
myCommand.ExecuteNonQuery()
myConn.Close()
EndUsing
'在dg中更新
ShowRecords(DG,AccesTableName)
EndSub
PublicSubAddRecord(ByValAccesTableNameAsString,_
ByValColsAsCollection,ByValValsAsCollection)
DimsqlStringAsString="insertinto"&AccesTableName&"("
DimiAsInteger
Fori=1ToCols.Count-1
sqlString=sqlString&Cols.Item(i).ToString&","
Next
sqlString=sqlString&Cols.Item(Cols.Count).ToString&")values("
Fori=1ToVals.Count-1
sqlString=sqlString&"?
"
Next
sqlString=sqlString&"?
)"
'时间表达式2009-12-2
'货币相当字符串如:
"333"添加后显示"¥333.00"
'ole对象,相当于二进制的数组
UsingConn
Conn.Open()
DimmyCommandAsOleDbCommand=NewOleDbCommand(sqlString,Conn)
Fori=1ToVals.Count
myCommand.Parameters.Add(NewOleDb.OleDbParameter).Value=Vals(i)
Next
myCommand.ExecuteNonQuery()
Conn.Close()
EndUsing
EndSub
#EndRegion
#Region"数据更新"
PublicSubUpdateRecord(ByValDGAsDataGridView,ByValAccesTableNameAsString,_
ByValColsAsCollection,ByValValsAsCollection,ByValIndexColumnNameAsString,ByValIndexValueAsObject,ByValisShowSqlStringAsBoolean)
DimsqlStringAsString="update"&AccesTableName&"set"
DimiAsInteger
Fori=1ToCols.Count-1
IfVals.Item(i).GetType.Name="String"Then
sqlString=sqlString&Cols.Item(i).ToString&"='"&Vals.Item(i)&"',"
ElseIfVals.Item(i).GetType.Name.Contains("Date")Then
sqlString=sqlString&Cols.Item(i).ToString&"='"&Vals.Item(i)&"',"
Else
sqlString=sqlString&Cols.Item(i).ToString&"="&Vals.Item(i)&","
EndIf
Next
IfVals.Item(i).GetType.Name="String"Then
sqlString=sqlString&Cols.Item(Cols.Count).ToString&"='"&Vals.Item(Cols.Count)&"'"
ElseIfVals.Item(i).GetType.Name.Contains("Date")Then
sqlString=sqlString&Cols.Item(Cols.Count).ToString&"='"&Vals.Item(Cols.Count)&"'"
Else
sqlString=sqlString&Cols.Item(Cols.Count).ToString&"="&Vals.Item(Cols.Count)
EndIf
IfIndexValue.GetType.Name="String"Then
sqlString=sqlString&"where"&IndexColumnName&"='"&IndexValue&"'"
Else
sqlString=sqlString&"where"&IndexColumnName&"="&IndexValue
EndIf
'目前只能实现更加数字,文本,是否来选取,时间等还没有实现,使用的时候要注意
IfisShowSqlStringThenMsgBox(sqlString)
UsingConn
Conn.Open()
DimcmdAsOleDbCommand=NewOleDbCommand(sqlString,Conn)
cmd.ExecuteNonQuery()
Conn.Close()
EndUsing
'在dg中更新
DimdtAsDataTable=DG.DataSource
ForEachrAsDataRowIndt.Rows
Ifr(IndexColumnName)=IndexValueThen
Fori=1ToCols.Count
r.Item(Cols(i))=Vals(i)
Next
EndIf
Next
EndSub
PublicSubUpdateRecord(ByValDGAsDataGridView,ByValAccesTableNameAsString,_
ByValColsAsCollection,ByValValsAsCollection,ByValisShowSqlStringAsBoolean)
DimsqlStringAsString="update"&AccesTableName&"set"
DimiAsInteger
Fori=1ToCols.Count-1
IfVals.Item(i).GetType.Name="String"Then
sqlString=sqlString&Cols.Item(i).ToString&"='"&Vals.Item(i)&"',"
ElseIfVals.Item(i).GetType.Name.Contains("Date")Then
sqlString=sqlString&Cols.Item(i).ToString&"='"&Vals.Item(i)&"',"
Else
sqlString=sqlString&Cols.Item(i).ToString&"="&Vals.Item(i)&","
EndIf
Next
IfVals.Item(i).GetType.Name="String"Then
sqlString=sqlString&Cols.Item(Cols.Count).ToString&"='"&Vals.Item(Cols.Count)&"'"
ElseIfVals.Item(i).GetType.Name.Contains("Date")Then
sqlString=sqlString&Cols.Item(Cols.Count).ToString&"='"&Vals.Item(Cols.Count)&"'"
Else
sqlString=sqlString&Cols.Item(Cols.Count).ToString&"="&Vals.Item(Cols.Count)
EndIf
IfisShowSqlStringThenMsgBox(sqlString)
'目前只能实现更加数字,文本,是否来选取,时间等还没有实现,使用的时候要注意
UsingConn
Conn.Open()
DimcmdAsOleDbCommand=NewOleDbCommand(sqlString,Conn)
cmd.ExecuteNonQuery()
Conn.Close()
EndUsing
DimdtAsDataTable=DG.DataSource
ForEachrAsDataRowIndt.Rows
DimjAsInteger
Forj=1ToCols.Count
r.Item(Cols(i))=Vals(j)
Next
Next
EndSub
#EndRegion
#Region"删除数据"
PublicSubDeleteRecord(ByValDGAsDataGridView,ByValAccesTableNameAsString,ByValIdAsInteger)
DimsqlStringAsString="deletefrom"&AccesTableName&"whereid="&Id
Try
DimmyConnAsNewOleDb.OleDbConnection(ConnectionStr)
myConn.Open()
DiminstAsOleDbCommand=NewOleDbCommand(sqlString,myConn)
inst.ExecuteNonQuery()
myConn.Close()
CatchexAsException
MsgBox(ex.Message)
EndTry
ShowRecords(DG,AccesTableName)
EndSub
#EndRegion
#Region"查找"
'开头是
PublicFunctionSelectRecordsByString(ByValAccesTableNameAsString,_
ByValcolsAsCollection,ByValvalsAsCollection)AsDataTable
DimsqlStringAsString="SELECT*FROM "&AccesTableName&"where("
DimiAsInteger
'Ifvals.Count=1ThenReturnNothing
Fori=1Tovals.Count-1
sqlString=sqlString&cols(i)&"='"&vals.Item(i)&"'or"
Next
sqlString=sqlString&cols(i)&"='"&vals.Item(vals.Count)&"')"
DimmyConnAsNewOleDb.OleDbConnection(ConnectionStr)
DimmyDataSetAsNewDataSet()
MsgBox(sqlString)
UsingmyConn
myConn.Open()
DimmyCommandAsOleDbDataAdapter=NewOleDbDa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 集中 整理 ArcEngin VB 环境 开发 用到 资料