Public Function GetDataView(ByVal vsql As String, ByRef dv As DataView, ByVal vcon As Integer)
Dim Message As String
Try
Dim MyConnection As SqlConnection
Dim ds As DataSet
Dim DT As DataTable
MyConnection = New SqlClient.SqlConnection(System.Configuration.ConfigurationManager.AppSettings("constring_USLIN_new"))
Dim MyCommand As SqlDataAdapter
MyCommand = New SqlDataAdapter(vsql, MyConnection)
Dim Table As String = "TmpTable"
Dim DTColumn As DataColumn
ds = New DataSet
DT = New DataTable("TmpTable")
DTColumn = New DataColumn("FinteridBak", GetType(Int32))
DTColumn.AutoIncrement = True
DTColumn.AutoIncrementSeed = 1
DT.Columns.Add(DTColumn)
ds.Tables.Add(DT)
MyCommand.Fill(ds, Table)
dv = ds.Tables(0).DefaultView
' MyConnection.Close()
Catch ex As SqlException
Dim ErrItem As SqlError
Dim ErrString As String
For Each ErrItem In ex.Errors
ErrString = ErrString + ex.Message + " "
Next
Message = "SQL Error.Details follow:</br></br>" & ErrString
Catch MyEx As Exception
Message = "Excption:" + MyEx.ToString
Finally
If dv Is Nothing Then
dv = New DataView
End If
End Try
Return Message
End Function
1.sqlexception是否被exception所包含。如果包含,假如发生sqlexception性质的错误是否会俩个catch分支处理都走一遍
不会
父类的异常应该放在最后,即先匹配子类的异常,最后是最高级异常,如果反过来,那么后面的低级的异常就没有写的必要啦。
2.dataTable 、dataView、Dataset 区别的经典回答
DataView是DataTable的表示,DataTable表里的记录是没有顺序的,但显示可以有不同顺序(DataVIew),
但还是同一张表,所以一个DataTable可以有多个DataView,默认访问DataTable,其实是访问他的
DefaultView。DataSet则是DataTable的集合,也可以有不止一个DataTable
DataView 是一张DataTable的虚拟视图 ,主要用来显示数据的 ,其实数据的更改都是发生在DataTable中。
如果以数据库来打比方,DataSet就是一个功能简单的数据库,是多个表(DataTable)的集合,DataTable就是对应数
据库中的表,而DataView则对应数据库中的视图(View)。
3.什么是DataAdapter?答:DataAdapter对象在DataSet与数据之间起桥梁作用
string strConn="uid=账号;pwd=密码;database=数据库;server=服务器";//SQL Server链接字符串
SqlConnection ConnSql=new SqlConnection (strConn); //Sql链接类的实例化
ConnSql.Open ();//打开数据库
string strSQL="SELECT * FROM 表名1 "; //要执行的SQL语句
SqlDataAdapter da=new SqlDataAdapter(strSQL,ConnSql); //创建DataAdapter数据适配器实例
DataSet ds=new DataSet();//创建DataSet实例
da.Fill(ds,"自定义虚拟表名");//使用DataAdapter的Fill方法(填充),调用SELECT命令
ConnSql.Close ();//关闭数据库