本文分步介绍了如何创建简单Visual Basic 6.0 应用程序,然后再升级到 Visual Basic 应用程序.NET 或 Visual Basic 2005 Visual Studio.net 或 Visual Studio 2005年中使用 Visual Basic 升级向导。
注意包含用 Visual Visual Basic.net 升级向导Studio.net 专业。
注意从早期版本的 Visual Basic,Visual Basic 2005年升级向导得到了增强。
要求
以下各项说明建议的硬件、 软件、网络基础结构、 技能、 知识和服务包将需要:
- Microsoft Windows 2000 专业版 (或服务器),或.NET Framework 与 Microsoft Windows XP 专业版 (或服务器)安装
- Microsoft Visual Basic 6.0
- Microsoft SQL Server 7.0 版或更高版本的罗斯文数据库中,适当的权限和用户 Id 和口令值
所需的预备知识:
- 通过创建应用程序方面的常规知识Visual Basic 6.0
使用 Visual Basic 升级向导
下面的步骤演示如何创建简单的 Visual Basic6.0 应用程序,然后升级到 Visual Basic.net 或 Visual Basic 2005年使用的应用程序Visual Basic 升级向导或 Visual Studio 2005 Visual Studio.net 中:
- 在开始菜单中,指向程序,指向Microsoft Visual Studio 6.0,,然后单击Microsoft Visual Basic 6.0。
- 在新建项目对话框中,单击标准 EXE,然后单击打开。
- 此应用程序中的第一个窗体使用 ADO 来检索记录集,然后显示 Microsoft 分层 FlexGrid 中的记录集控件。在 Form1 的属性对话框的名称字段中,键入frmADO.
- 如果未打开工具箱中,在视图菜单上单击工具箱。
- 从工具箱MSHFlexGrid表单上放置,使其填充窗体的大部分。留出足够空间在要放置按钮的窗体底部。
注意: 如果您看不工具箱中的MSHFlexGrid图标,可将其添加到工具箱中。用鼠标右键单击工具箱,然后单击组件。在组件对话框中,单击要从可用的组件列表中选择Microsoft 分层 FlexGrid 控件 6.0 (OLEDB) ,然后单击确定。 - 从工具箱将命令按钮放在 MSHFlexGrid 下方的窗体上。在属性对话框的标题字段中,键入 确定.
- MADO,用鼠标右键单击,然后单击查看代码。添加下面的代码创建一个数据库连接和返回的记录集包含所有罗斯文数据库的产品表中的数据。
注意: 在下面的代码示例,您必须更改 用户 id =<username></username> 和 密码 =<strong password=""></strong> 为正确的值。请确保该用户 ID具有对数据库执行此操作的相应权限。
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim cn As Connection
Set cn = New Connection
cn.ConnectionString = "Provider=sqloledb;Data Source=localhost;database=northwind;user id=<username>;password=<strong password>"
cn.Open
Dim rs As Recordset
Set rs = New Recordset
rs.CursorLocation = adUseClient
rs.Open "select * from products", cn
Set MSHFlexGrid1.DataSource = rs
End Sub
- 按 CTRL + S 保存窗体。在文件菜单上单击另存为。在另存为对话框中,单击保存。
- 在项目资源管理器中,用鼠标右键单击项目 1,再单击添加,然后单击窗体。单击打开。
- 在属性对话框的名称字段中,键入 frmClipboard.
- 从工具箱中,将文本框放置在窗体上。在文本字段中,键入 通过惰性跳转的棕色狐狸狗.
- 将文本框下面的命令按钮。在属性对话框的标题字段中,键入 复制.
- 将第二个命令按钮放在窗体上。在属性对话框的标题字段中,键入 粘贴.
- FrmClipboard,用鼠标右键单击,然后单击查看代码。粘贴下面的代码,命令按钮的单击事件。此代码使用剪贴板对象获取到,并粘贴文本:
Private Sub Command1_Click()
Clipboard.SetText Text1.SelText
End Sub
Private Sub Command2_Click()
Text1.SelText = Clipboard.GetText
End Sub
- 按 CTRL + S 保存窗体。
- 所需的最后一个窗体是应用程序的主窗体。在项目资源管理器中,用鼠标右键单击项目 1、 单击添加,再单击窗体,然后单击打开。
- 在属性对话框的名称字段中,键入 图像.
- 从工具箱中,图像在表单上放置命令按钮。在属性对话框的标题字段中,键入 ADO.
- 将第二个命令按钮放在窗体上。在属性对话框的标题字段中,键入 剪贴板.
- 图像,用鼠标右键单击,然后单击查看代码。命令按钮的以下代码粘贴到单击事件,显示的其他两种形式:
Private Sub Command1_Click()
frmADO.Show
End Sub
Private Sub Command2_Click()
frmClipboard.Show
End Sub
- 按 CTRL + S 保存窗体。
- 在解决方案资源管理器中,用鼠标右键单击项目 1,然后单击项目 1 属性。在启动对象字段中,单击图像,然后单击确定。
- 若要添加引用 ADO 组件中,在项目菜单上,单击引用。在可用引用的列表中,单击以选中Microsoft ActiveX 数据对象库(任何版本 2.0 或更高版本将执行操作)。单击确定。
- 若要编译该项目,在文件菜单上的单击使 Project1.exe。在生成项目对话框中,单击确定(接受默认的文件名)。
- 按 F5 键运行该应用程序在调试模式下。
注意: 您不需要验证旧的 Visual Basic在升级之前,应用程序将运行未出现任何问题。 - 关闭 Visual Basic 开发环境。在提示若要将更改保存到项目,请单击是。使用默认名称并保存该项目。
- 在开始菜单中,指向程序,指向Microsoft Visual Studio.net,,然后单击Microsoft Visual Studio.net。
- 在开始页中,单击打开项目。找到包含 Visual Basic 6.0 项目的文件夹您只需创建 (通常名是可视的文件Studio\VB98)。单击Project1.vdp,然后单击打开。
- Visual Studio.net 检测到这是旧式可视基本项目,并启动 Visual Basic 升级向导。该向导显示作为您的每个步骤的说明继续执行下面的步骤,顺序:
- 创建一个新的项目,在其中您现有的项目升级。
- 将窗体文件和类文件复制到新项目。
- 提供列出的组件升级报告成功升级项目和未升级组件成功。
- 单击下一步的每一个步骤,直到在升级过程开始。"升级要花 30-60 秒的时间来完成。
- 在解决方案资源管理器中,双击_UpgradeReport.htm。此报表显示升级的结果。请注意,所有除 frmClipboard 升级没有任何问题的窗体。
- 展开以查看问题的frmClipboard.vb 。Clipboard.SetTextGetText未不正确升级。单击要查看如何解决的问题的说明中的链接。
- 在解决方案资源管理器中,请注意所有形式保留原来的名称,但文件扩展名更改为.frm 从。 vb.
- 展开引用。请注意,引用的所有所需的组件若要使用旧的 Visual Basic 和 ADO 组件已添加自动进行。
- 用鼠标右键单击任何窗体,然后单击查看代码。展开升级支持区域。此区域显示 Visual Studio.net 或 Visual Studio 2005年的配置各种属性和变量,可支持升级后的代码。
- 在解决方案资源管理器中, frmClipboard.vb,用鼠标右键单击,然后单击查看代码。请注意未行前放置的注释不升级。
- 更改到以下的Command1_Click和Command2_Click事件:
Private Sub Command1_Click(ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) Handles Command1.Click
Clipboard.SetDataObject(Text1.Text)
End Sub
Private Sub Command2_Click(ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) Handles Command2.Click
Text1.SelectedText = _
Clipboard.GetDataObject().GetData(GetType(System.String))
End Sub
完整代码列表
完整代码列表 (frmADO.frm)
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim cn As Connection
Set cn = New Connection
cn.ConnectionString = "Provider=sqloledb;Data Source=localhost;database=northwind;user id=<username>;password=<strong password>"
cn.Open
Dim rs As Recordset
Set rs = New Recordset
rs.CursorLocation = adUseClient
rs.Open "select * from products", cn
Set MSHFlexGrid1.DataSource = rs
End Sub
完整代码列表 (frmClipboard.frm)
Private Sub Command1_Click()
Clipboard.SetText Text1.SelText
End Sub
Private Sub Command2_Click()
Text1.SelText = Clipboard.GetText
End Sub
Complete Code Listing (frmMain.frm)
Private Sub Command1_Click()
frmADO.Show
End Sub
Private Sub Command2_Click()
frmClipboard.Show
End Sub
验证应用程序正常工作
- 按 f5 键以启动该应用程序。
- 在提示符下以保存该项目,单击确定。
- 在 Form1 中,单击ADO。将显示一个窗体包含网格中的数据。关闭此窗体。
- 在 Form1 中,单击剪贴板。
- 单击复制。
- 将插入点放在开头的文本框中文本,然后单击粘贴。您应该看到所粘贴的文本。
故障排除
Visual Basic.net 是从以前的版本的主要变化Visual Basic。对于许多项目,是明智的一些广泛的准备工作升级之前。下面的文档可能的信息,请参阅帮助您更轻松地升级:
在升级之前应考虑的事项
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconthingstoconsiderbeforemigrating.asp)
引用
有关详细信息,请参阅以下 Microsoft 开发人员网络 (MSDN) 的文章:
文章编号: 317885 - 最后修改: 2012年7月2日 - 修订: 1.0
这篇文章中的信息适用于:
- Microsoft Visual Basic 2005
- Microsoft Visual Basic .NET 2003 标准版
- Microsoft Visual .NET 2002 标准版
- Microsoft Visual Basic 6.0 专业版
- Microsoft .NET Framework 1.1
| kbvs2005swept kbvs2005applies kbmigration kbhowtomaster kbmt KB317885 KbMtzh |
机器翻译注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版:
317885
(http://support.microsoft.com/kb/317885/en-us/
)
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。