求大神 能帮我把vb6.0数据库代玛换变vb.net内用吗

[复制链接]
查看11 | 回复7 | 2021-1-27 06:31:08 | 显示全部楼层 |阅读模式
求大神能帮我把vb6.0代玛换变vb.net内用吗
这是一个访问数据查询,增加,修改,删除
OptionExplicit
PublicServerIPAsString,DbNameAsString,UserIdAsString,UserPwdAsString
PublicPortNumberAsInteger

'****************************************************
'*连接数据库
'****************************************************
PrivateFunctionConnectDB(ByRefcnAsADODB.Connection)AsInteger
OnErrorGoToerrhandle
DimstrConnectionAsString
DimsportAsString

IfTrim(ServerIP)=""Then
ConnectDB=-1
ExitFunction
EndIf
IfTrim(DbName)=""Then
ConnectDB=-2
ExitFunction
EndIf
IfTrim(UserId)=""Then
ConnectDB=-3
ExitFunction
EndIf

IfPortNumber=0OrNotIsNumeric(PortNumber)Then
sport=""
Else
sport=","&CStr(PortNumber)
EndIf
strConnection="provider=sqloledb;datasource="&ServerIP&sport&";UserID="&UserId&";pwd="&UserPwd&";InitialCatalog="&DbName
cn.ConnectionString=strConnection
cn.Open
ConnectDB=1
ExitFunction
errhandle:
If(cn.State=adStateOpen)Thencn.Close
Setcn=Nothing
ConnectDB=-4
EndFunction

'****************************************************
'*断开数据库
'****************************************************
PrivateSubDisConnectDB(ByRefcnAsADODB.Connection)
OnErrorResumeNext
cn.Close
Setcn=Nothing
EndSub
'*****************************************************
'*由卡密号删除
'*****************************************************
PublicFunctionDelKmInfo(ByValKmCodeAsString)AsInteger
DimconnAsADODB.Connection
DimcmdAsADODB.Command
DimsSqlAsString
sSql="deletefromdbo.kminfowheredbo.kminfo.kmcode='"+Replace(Trim(KmCode),"'","''")&"'"
Setconn=NewADODB.Connection
DimiRetConDbAsInteger
iRetConDb=ConnectDB(conn)
IfiRetConDb0Then
conn.RollbackTrans
DelKmInfo=0
Else
conn.CommitTrans
DelKmInfo=1
EndIf
Setcmd=Nothing
DisConnectDBconn
EndFunction
'*****************************************************
'*由时间删除
'*****************************************************
PublicFunctionDelKmInfoByTime(ByValkmtimeAsString,ByValsOPAsString)AsInteger
DimconnAsADODB.Connection
DimcmdAsADODB.Command
DimsSqlAsString
IfNot(sOP=">"OrsOP="="OrsOP=">="OrsOP="")Then
DelKmInfoByTime=-10
ExitFunction
EndIf
If(NotIsDate(kmtime))Then
DelKmInfoByTime=-11
ExitFunction
EndIf

sSql="deletefromdbo.kminfowheredbo.kminfo.kmtime"&sOP&"'"&kmtime&"'anddbo.kminfo.kmtime'2000-01-0100:00:00'"
Setconn=NewADODB.Connection
DimiRetConDbAsInteger
iRetConDb=ConnectDB(conn)
IfiRetConDb0Then
conn.RollbackTrans
DelKmInfoByTime=0
Else
conn.CommitTrans
DelKmInfoByTime=1
EndIf
Setcmd=Nothing
DisConnectDBconn
EndFunction

'*****************************************************
'*新增卡密号信息
'*****************************************************
PublicFunctionNewKmInfo(ByValKmCodeAsString,ByValkmcountAsInteger,ByValkmtimeAsString,ByValislockAsInteger,ByValsoftwareverAsInteger,ByValupgrademsgAsString,ByValsoftwaretypeAsString,ByValhardinfoAsString,ByValisbindAsInteger,ByValrmk1AsString,ByValrmk2AsString,ByValrmk3AsString,ByValrmk4AsString,ByValrmk5AsString)AsInteger
DimconnAsADODB.Connection
DimcmdAsADODB.Command
DimrsAsADODB.Recordset
DimsSqlAsString

Setconn=NewADODB.Connection
DimiRetConDbAsInteger
iRetConDb=ConnectDB(conn)
IfiRetConDb0Then
conn.RollbackTrans
NewKmInfo=0
Else
conn.CommitTrans
NewKmInfo=1
EndIf
Setcmd=Nothing
DisConnectDBconn
EndFunction

分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
这代码不是很复杂,建议直接重写,使用ADO.NET。
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
VB中Recordset与.net中dataset已经完全不同了,改写的工作量估计大于重写
调用的adodb的方式在后面也不一样了,建议重写
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层

FunctiongetDataset(ByValsqlAsString)AsDataSet
DimconnstrAsString="Provider=Microsoft.jet.OLEDB.4.0;DataSource=|DataDirectory|\data.mdb"
DimconnAsOleDbConnection=NewOleDbConnection(connstr)'("provider=microsoft.Jet.OLEDB.4.0;datasource="&CurDir()&"\data.mdb")
Dimadapter1AsOleDb.OleDbDataAdapter=NewOleDbDataAdapter(sql,conn)
DimcmdAsOleDbCommand=NewOleDbCommand
getDataset=NewDataSet
adapter1.Fill(getDataset,"temp")
EndFunction

MyDs1=NewDataSet
MyDs1=getDataset("select*fromstockwhere[列名]like'"&textbox1.text&"')
IfMyDs1.Tables("temp").Rows.Count=1Then...................yourcode

这里有个查询的例子
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
.net也有ado,不过还是建议用ado.net
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
引用4楼的回复:.net也有ado,不过还是建议用ado.net
有什么区别呢?从功能上从代码上能讲解一下吗??
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
ado需要另安装ado驱动,速度也慢于ado.net
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
引用6楼的回复:ado需要另安装ado驱动,速度也慢于ado.net
我的例子上的是OLEDB吧?那属于ado还是.net,有什么优缺点??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行