本文主要是介绍初识DataTable,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在重构机房时,D层负责与数据库交互。D层对数据库进行查询操作,返回的值是DataTable对象。在系统中可以通过DataTable对象给窗体中的TextBox、DataGridView等控件赋值,也可以通过返回的DataTable对象判断数据库中是否存在查询的数据。总的来说,涉及到与数据库交互的系统对DataTable的使用是非常广泛的。这篇文章主要是对DataTable做一个简单的介绍。
DataTable对象是内存中的一个虚拟的数据表,主要由DataRow对象和DataColumn对象组成。DataTable对象是组成DataSet对象的主要组件,因DataSet对象可以接收由DataAdapter对象执行SQL指令后所取得的数据,这些数据是DataTable对象的格式,所以DataSet对象也需要许多DataTable对象来储存数据,并可利用DataRows集合对象中的Add方法加入新的数据。DataTable类属于System.Data命名空间,因此要想使用DataTable对象必须引用System.Data命名空间。DataTable对象常用的属性请参见表所示:
在机房重构中通过D层查询数据库返回DataTable对象的方法,使用SqlHelper类,下面对SqlHelper类中对数据库查询操作的代码:
'/// <summary> ''///执行查询操作,(有参)返回值为datatable类型 '/// </summary> '/// <param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param> '///<param name="cmdType">判断Sql语句的类型,一般都不是存储过程</param> '/// <param name="sqlParams">参数数组,无法确认有多少参数</param> '/// <returns> '///<返回表> '/// </returns> Public Function ExecuteSelect(ByVal strSql As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTableDim sqlAdapter As SqlDataAdapter'定义数据表参数dtSQLDim dtSQL As New DataTable()'定义数据集参数dsSQLDim dsSQL As New DataSet'用传进的参数填充本类自己的cmd对象 cmdSQL.CommandText = strSqlcmdSQL.CommandType = cmdTypecmdSQL.Connection = cnnSQL'参数添加cmdSQL.Parameters.AddRange(sqlParams)'实例化adapter sqlAdapter = New SqlDataAdapter(cmdSQL)Try'用adapter将dataSet填充 sqlAdapter.Fill(dsSQL)'datatable为dataSet的第一个表 dtSQL = dsSQL.Tables(0)'清除参数 cmdSQL.Parameters.Clear()Catch ex As ExceptionMsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")Finally'最后一定要销毁cmd Call CloseSQLCommand()End Try'返回值DataTable对象Return dtSQLEnd Function
在SqlHelper类中对查询出来的数据填充到DataSet(数据集)中,DataSet是DataTable的集合,其中包括一个或者多个DataTable。
通过“dtSQL=dsSQL.Tables(0)”这句代码将DataSet中的第一张表提取出来作为返回值DataTable,最终得到我们查询得出的表。
总结
在实现窗体中控件与数据的绑定时,DataTable起着很大的作用。但是DataTable在三层中进行数据传递时也有它的不足之处,具体的内容请看文章 泛型集合代替DataTable.
PS:以上只是个人对DataTable的理解,如有不足之处,请斧正!
这篇关于初识DataTable的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!