集中整理ArcEngin在VB环境下开发时用到的资料.docx

上传人:b****8 文档编号:10286629 上传时间:2023-02-09 格式:DOCX 页数:23 大小:19.83KB
下载 相关 举报
集中整理ArcEngin在VB环境下开发时用到的资料.docx_第1页
第1页 / 共23页
集中整理ArcEngin在VB环境下开发时用到的资料.docx_第2页
第2页 / 共23页
集中整理ArcEngin在VB环境下开发时用到的资料.docx_第3页
第3页 / 共23页
集中整理ArcEngin在VB环境下开发时用到的资料.docx_第4页
第4页 / 共23页
集中整理ArcEngin在VB环境下开发时用到的资料.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

集中整理ArcEngin在VB环境下开发时用到的资料.docx

《集中整理ArcEngin在VB环境下开发时用到的资料.docx》由会员分享,可在线阅读,更多相关《集中整理ArcEngin在VB环境下开发时用到的资料.docx(23页珍藏版)》请在冰豆网上搜索。

集中整理ArcEngin在VB环境下开发时用到的资料.docx

集中整理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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1