使用 GridWeb 工作表设计器将工作表绑定到 DataSet
使用Worksheets Designer绑定工作表与数据库
**步骤1:创建示例数据库**
- 首先,创建本文中将使用的示例数据库。我们使用Microsoft Access创建一个数据库,其中包含一个名为Products的表。其模式如下所示。 Products表的设计信息
- 向Products表中添加了一些虚拟记录。 Products表中的记录
步骤2:设计示例应用程序
使用Visual Studio.NET创建并设计了一个ASP.NET web应用程序,如下所示。 设计的示例应用程序
步骤3:使用服务器资源管理器连接数据库
现在是连接到数据库的时候了。我们可以使用Visual Studio.NET中的服务器资源管理器轻松完成。
- 在服务器资源管理器中选择数据连接,然后右键单击。
- 从菜单中选择添加连接。 选择添加连接选项
将显示数据链接属性对话框。 数据链接属性对话框
使用此对话框,您可以连接到任何数据库。默认情况下,它允许您连接到SQL Server数据库。在本示例中,我们需要连接到Microsoft Access数据库。
- 点击提供程序选项卡。
- 从OLE DB提供程序列表中选择Microsoft Jet 4.0 OLE DB提供程序。
- 点击下一步。 在选择OLE DB提供程序后点击下一步
打开连接选项卡页面。
- 选择Microsoft Access数据库文件(在我们的案例中是db.mdb)然后点击确定。 选择数据库文件后点击确定按钮
步骤4:图形方式创建数据库连接对象
- 使用服务器资源管理器浏览数据库中的表。 只有一个名为Products的表。
- 从服务器资源管理器将Products表拖放到Web表单。 从服务器资源管理器拖放Products表到Web表单
可能会弹出对话框。 确认是否在连接字符串中包含数据库密码的对话框
决定是否在连接字符串中包含数据库密码。在本例中,我们选择不包括密码。 创建并添加了两个数据库连接对象(oleDbConnection1和oleDbDataAdapter1)。 创建和显示数据库连接对象(oleDbConnection1和oleDbDataAdapter1)
步骤5:生成数据集
到目前为止,我们已经创建了数据库连接对象,但仍然需要一个地方来存储连接到数据库后的数据。DataSet对象可以精确地存储数据,我们还可以在VS.NET IDE中轻松地生成它。
- 选择oleDbDataAdaper1并右键单击。
- 从菜单中选择生成 DataSet 选项。 选择生成 DataSet 选项
会显示生成 DataSet 对话框。 在这里,可以选择要创建的新 DataSet 对象的名称,以及应将哪些表添加到其中。
- 选择将此数据集添加到设计器 选项。
- 点击确定。 单击确定按钮生成 DataSet
向设计器中添加了一个 dataSet11 对象。 生成 DataSet 并添加到设计器
步骤6:使用工作表设计器
现在,是时候揭开秘密了。
-
选择 GridWeb 控件并右键单击。
-
从菜单中选择工作表设计器 选项。
选择工作表设计器选项
会显示工作表集合编辑器(也称为工作表设计器)。 工作表集合编辑器对话框
该对话框包含一些属性,可以配置这些属性将 Sheet1 绑定到数据库中的任何表。
- 选择DataSource 属性。 在上一步生成的 dataSet11 对象在菜单上列出。
- 选择 DataSet11。
- 单击 DataMember 属性。 Worksheets 设计器会自动显示 dataSet11 中表的列表。这里只有一个表,Products。
- 选择 Products 表。 设置 DataSource 和 DataMember 属性
- 检查 BindColumns 属性。 单击 BindColumns 属性
单击 BindColumns 属性会打开 BindColumn 集合编辑器。 BindColumn 集合编辑器
在 BindColumn 集合编辑器中,Products 表的所有列都会被自动添加到 BindColumns 集合中。
- 选择任意列并自定义其属性。 例如,您可以修改每个列的标题。 修改 ProductID 列的标题
- 完成更改后,单击 OK。
- 通过单击 OK 关闭所有对话框。 最后,您将返回到 WebForm1.aspx 页面。 在使用 Worksheets 设计器后返回到 WebForm1.aspx 页面
上面显示了 Products 表的列名。由于某些列的宽度很小,因此某些列的完整名称并不完全可见。
步骤 7:向 Page_Load 事件处理程序添加代码
我们已经使用了 Worksheets 设计器,现在只需要向 Page_Load 事件处理程序添加代码,以便使用 oleDbDataAdapter1 从数据库中填充 dataSet11 对象,并通过调用其 DataBind 方法将 GridWeb 控件绑定到 dataSet11。
- 添加代码:
C#
//Implementing Page_Load event handler
private void Page_Load(object sender, System.EventArgs e)
{
//Checking if there is not any PostBack
if (!IsPostBack)
{
try
{
//Filling DataSet with data
oleDbDataAdapter1.Fill(dataSet11);
//Binding GridWeb with DataSet
GridWeb1.DataBind();
}
finally
{
//Finally, closing database connection
oleDbConnection1.Close();
}
}
}
在工作表中实现 GridDesktop 数据绑定功能
'Implementing Page_Load event handler
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Checking if there is not any PostBack
If Not IsPostBack Then
Try
'Filling DataSet with data
oleDbDataAdapter1.Fill(dataSet11)
'Binding GridWeb with DataSet
GridWeb1.DataBind()
Finally
'Finally, closing database connection
oleDbConnection1.Close()
End Try
End If
End Sub
- 检查代码添加到 Page_Load 事件处理程序。 添加到 Page_Load 事件处理程序的代码
第8步:运行应用程序
编译并运行应用程序:按 Ctrl+F5 或单击 开始。 运行应用程序
编译后,WebForm1.aspx 页面将在浏览器窗口中打开,并从数据库加载所有数据。 从数据库加载到 GridWeb 控件中的数据
使用 GridWeb 控件
当数据加载到 GridWeb 控件中时,它为用户提供对数据的控制。GridWeb 提供了多种不同类型的数据操作功能。
数据有效性
Aspose.Cells.GridWeb 根据数据库中定义的数据类型自动为所有绑定列创建相应的验证规则。将光标悬停在单元格上可查看单元格的验证类型。 检查单元格的验证类型
Here, the selected cell contains the
删除行
要删除行,请选择一行(或行中的任何单元格),右键单击并选择 删除行。 从菜单中选择删除行选项
该行将立即被删除。 网格数据(删除一行后)
编辑行
编辑单元格或行上的数据,然后单击保存或提交以保存更改。
添加行
- 要添加一行,右键单击单元格,然后选择添加行。 从菜单中选择添加行选项
在其他行的末尾添加了一个新行到表格中。 表格中添加了新行
At the left of the new row is an asterisk
, indicating that the row is new.
- 向新行添加值。
- 单击保存或提交确认更改。 点击保存按钮保存数据更改
设置数值格式
目前,产品价格列中的价格显示为数字值。可以将它们显示为货币。
- 返回到 Visual Studio.NET。
- 打开 BindColumn Collection Editor。 产品价格列的NumberType属性设置为常规。 将 NumberType 属性设置为常规
- 单击DropDownList,然后从列表中选择Currency4。 NumberType 属性更改为 Currency4
- 再次运行应用程序。 产品价格列中的值现在为货币。 产品价格以货币数值格式显示
编辑数据
到目前为止,该应用程序仅允许用户查看表格数据。用户可以在GridWeb控件中编辑数据,但是在关闭浏览器并打开数据库后,没有任何更改。所做的更改并未保存到数据库。
以下示例向应用程序添加代码,以便GridWeb可以将更改保存到数据库。
- 打开属性窗格,并从列表中选择GridWeb控件的SaveCommand事件。 选择GridWeb的SaveCommand事件
- 双击SaveCommand事件,VS.NET将创建GridWeb1_SaveCommand事件处理程序。
- 在此事件处理程序中添加代码,用于使用oleDbDataAdapter1将工作表中绑定的 DataSet 中的任何修改的数据更新到数据库。
C#
//Implementing the event handler for SaveCommand event
private void GridWeb1_SaveCommand(object sender, System.EventArgs e)
{
try
{
//Getting the modified data of worksheet as a DataSet
DataSet dataset = (DataSet)GridWeb1.WorkSheets[0].DataSource;
//Updating database according to modified DataSet
oleDbDataAdapter1.Update(dataset);
}
finally
{
//Closing database connection
oleDbConnection1.Close();
}
}
在工作表中实现 GridDesktop 数据绑定功能
'Implementing the event handler for SaveCommand event
Private Sub GridWeb1_SaveCommand(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridWeb1.SaveCommand
Try
'Getting the modified data of worksheet as a DataSet
Dim dataset As DataSet = CType(GridWeb1.WorkSheets(0).DataSource, DataSet)
'Updating database according to modified DataSet
oleDbDataAdapter1.Update(dataset)
Finally
'Closing database connection
oleDbConnection1.Close()
End Try
End Sub
您还可以检查添加到GridWeb1_SaveCommand事件处理程序的代码 添加到GridWeb1_SaveCommand事件处理程序的代码
现在使用保存按钮保存更改到数据库,这些更改一定会保存。