看一下vb.net里连数据库的一个问题。【已经连上了】

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:36:58
Dim strSQL, strConn As String

strConn = "Data Source=chnzdx;Initial Catalog=master;Integrated Security=True;"
strSQL = "select * from STUDENT"

Dim da As New SqlClient.SqlDataAdapter(strSQL, strConn)

Dim tbl As New DataTable()

da.Fill(tbl)

For Each row As DataRow In tbl.Rows
Console.WriteLine(row("name"))
Console.WriteLine(row("age"))
Console.WriteLine(row("date"))
Next

---------------------------------------------------------
我可不可以,把连接数据成功后的“连接对象”,做为一个参数传给其他函数。

比如,我只向他们传递这个链接和一个SQL语句,我就能到这个SQL文的执行结果?

请高手给指点一下。

你说的“连接对象”是指da吧,da的处理数据库连接的方式是自动连接,查询完成后也会在da对象不再被使用时自动关闭连接,你可以把new好的da传给其它函数使用,不过不建议你这样做,建议你写一个函数类似如下(我是用C#的,以下代码只为说明意思):
Function ExcuteSql(String sql) as Datatable
Dim strConn As String
strConn = "Data Source=chnzdx;Initial Catalog=master;Integrated Security=True;"
Dim da As New SqlClient.SqlDataAdapter(sql, strConn)
Dim tbl As New DataTable()
da.Fill(tbl)
Return tbl
End Function
这样你的代码就可以改为:
Dim strSQL As String

strSQL = "select * from STUDENT"

For Each row As DataRow In ExcuteSql(strSQL)
Console.WriteLine(row("name"))
Console.WriteLine(row("age"))
Console.WriteLine(row("date"))
Next

当然,如果是简单的程序可以这样写,如果程序复杂点的化建议使用SqlHelper或DBHelperSql等的数据库操作类,以让代码具有更好的可维护性与扩展性,如果更大的项目,可以考虑使用MVC三层架构,把数据库操作都放在DAL层
呵呵,希望能解决你的问题