vb.net操作數據庫,VB訪問數據庫

vb.net操作數據庫的效率問題

select

站在用戶的角度思考問題,與客戶深入溝通,找到湖南網站設計與湖南網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站制作、網站建設、企業官網、英文網站、手機端網站、網站推廣、國際域名空間、網頁空間、企業郵箱。業務覆蓋湖南地區。

*

from

XXX

如果數據量少還可以,如果數據量一大,需要從適配器在讀取到Dataset中,這個是相當耗時的。

其實,有一些程序可以采用

分段讀取,多次讀取。

像這樣的寫法,更新一條數據,就需要在重新讀取所有的數據。。耗費太大資源和貸款。。

客戶端也會導致很慢甚至讀取數據假死。。

-----------------------------

最好的方式不管你用DataRead還是什么,這些都根本解決不了這些問題。

你需要做的就是

如何高效讀取/處理數據。

BS

結構,可以采用異步加載數據和處理數據

CS結構

異步加載和分段讀取數據。而不是一下子就把所有數據加載處理。這樣的話,CPU和內存占用率就會抬高。。。。

---------------------------------

之前公司采用的方式就是這樣的,DataSet和Fill

后來發現不好,于是就采用異步,服務器壓力減少,客戶端滿意度提高。。

如何用vb.net查詢、添加、刪除、修改數據庫(需要很詳細的代碼)?

sQueryString是SQL(增刪查改)語句

public

Boolean

ExecSQL(string

sQueryString)

{

SqlConnection

con

=

new

SqlConnection(ConfigurationManager.AppSettings["conStr"]);

con.Open();

SqlCommand

dbCommand

=

new

SqlCommand(sQueryString,

con);

try

{

dbCommand.ExecuteNonQuery();

con.Close();

}

catch

{

con.Close();

return

false;

}

return

true;

}

}

建立一個類,明自己取,然后調用就是了

例如:

BC=NEW

類();

STRING

ist="INSERT

INTO

XX(1,2,3)VALUES(A,B,C)";

BC.ExecSQL(ist);

就可以了

vb.net 怎么操作數據庫

如果樓主熟悉VB6,可以直接在項目中添加ADODB的Com引用,這樣你就可以像VB6那樣操作數據庫了!

另外

.NET Framework中連接數據庫要用到ADO.NET。如果要操作Access數據庫,要用到System.Data.OleDb命名空間下的許多類。

比如按樓主所說,“我想在textbox1中顯示表一中【一些數據】字段下的第一個內容”:

'首先導入命名空間

Imports System.Data

Imports System.Data.OleDb

'然后在某一個事件處理程序中寫:

Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=數據庫.accdb;Jet OLEDB:Database Password=MyDbPassword")

Dim command As New OleDbCommand("Select * From 數據表", conn)

conn.Open() '打開數據庫連接

Dim reader As OleDbDataReader = command.ExecuteReader() '執行SQL語句,返回OleDbDataReader 對象

Do While reader.Read() '讀取一條數據

textbox1.Text += reader("一些數據") VbCrLf

Loop

reader.Close() '關閉OleDbDataReader

conn.Close() '關閉連接

vb.net連接數據庫

1、 用The SQL Server .NET Data Provider連接數據庫

The SQL Server .NET Data Provider是利用SqlConnection類來連接SQL Server7.0或更高版本的數據庫,

SqlConnection類位于名稱空間System.Data.SqlClient下。

連接代碼:

Dim sqlConnection1 As SqlClient.SqlConnection

Dim strConnect As String=”data source=服務器名;initial catalog=數據庫名;user id=sa;password=;”

sqlConnection1=New System.Data.SqlClient.SqlConnection(strConnect)

sqlConnection1.open ‘打開數據庫

sqlConnection1.close ‘關閉連接,釋放資源

2、 用The OLE DB .NET Data Provider連接數據庫

上面已經說過,利用The OLE DB .NET Data Provider可以訪問Access、Oracle和SQL Server等種數據

庫,那么,它是怎樣訪問這些數據庫的呢?The OLE DB .NET Data Provider是通過位于名稱空間Sy

stem.Data.OleDb類庫下的OleDbConnection類來連接這三種不同類型的數據庫的。下面舉例說明:

1)連接SQL Server數據庫

Dim oleDbConnection1 As OleDb.OleDbConnection

Dim strConnect As Sting=”Provider=SQLOLEDB;Persist Security Info=False;Data Source=服務器名;Initial Catalog=數據庫名;User ID=sa;Password=;”

oleDbConnection1=New System.Data.OleDb.OleDbConnection(strConnect)

2)連接Access數據庫

假設要連接的Access數據庫名為“Example.mdb”,存放在d:\Data\目錄下。

Dim oleDbConnection1 As OleDb.OleDbConnection

Dim strConnect As Sting=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Data\ Example.mdb”

oleDbConnection1= New System.Data.OleDb.OleDbConnection(strConnect)

3)連接Oracle數據庫

Dim oleDbConnection1 As OleDb.OleDbConnection

Dim strConnect As Sting=”Provider=MSDAORA;Data Source=服務器名;User ID=用戶ID;Password=密碼;”

oleDbConnection1= New System.Data.OleDb.OleDbConnection(strConnect)

3、 用The ODBC .NET Data Provider連接數據庫

The ODBC .NET Data Provider連接數據庫是通過OdbcConnection類來實現的,這個類位于名稱空間

Microsoft.Data.Odbc下,而名稱空間Microsoft.Data.Odbc是封裝在Microsoft.Data.Odbc.dll文件下的。

由于篇幅有限,這里就只介紹連接Sql Server和Oracle數據庫的方法,其他數據庫的連接方法基本類

似,我就不再多講了。

1)連接Sql Server數據庫

Dim odbcDbConnetion1 As Microsoft.Data.OdbcConnection

Dim strConnect As Sting=”Driver={SQL Server};Server=服務器名;Uid=sa;pwd=;Database= 數據庫名;”

odbcDbConnetion1=New Microsoft.Data.OdbcConnection(strConnect)

2)連接Oracle數據庫

Dim odbcDbConnetion1 As Microsoft.Data.OdbcConnection

Dim strConnect As Sting=”Driver={Microsoft ODBC for Oracle};Server=服務器名;Uid=sa;pwd=;”

odbcDbConnetion1=New Microsoft.Data.OdbcConnection(strConnect)

四、總結

通過本文的介紹,讀者基本掌握了在Visual Basic.NET中用ADO.NET和ODBC.NET連接各種數據庫的方法

。以上三種驅動針對不同的數據庫,它們的性能方面也有很大的不同:The SQL Server .NET Data Provider

的效率最高;The OLE DB .NET Data Provider的效率比較底;The ODBC .NET Data Provider的效率最慢。

具體連接哪一種數據庫選用哪一種數據驅動要從工作效率方面來考慮。

以上回答你滿意么?

vb.net 使用模塊連接數據庫

你說這么一大篇全是業務邏輯,沒說明你遇到的技術性問題在哪

.net自帶的config文件來配置連接字符串,比ini好N倍,如果你非要用ini那么自己解決問題

檢測是否能連接用Connection.Open加try catch就可以

vb.net數據庫操作

參考一下下面這段代碼就可以了。

Imports System.Data

'引入數據庫操作類命名空間

Imports System.Data.OleDb

'引入ADO.NET操作命名空間

Public Class FrmModifystInfo

Inherits System.Windows.Forms.Form

Public ADOcmd As OleDbDataAdapter

Public ds As DataSet = New DataSet()

'建立DataSet對象

Public mytable As Data.DataTable

'建立表單對象

Public myrow As Data.DataRow

'建立數據行對象

Public rownumber As Integer

'定義一個整型變量來存放當前行數

Public SearchSQL As String

Public cmd As OleDbCommandBuilder

'======================================================

#Region " Windows 窗體設計器生成的代碼 "

#End Region

'======================================================

Private Sub FrmModifystInfo_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

'窗體的載入

TxtSID.Enabled = False

TxtName.Enabled = False

ComboSex.Enabled = False

TxtBornDate.Enabled = False

TxtClassno.Enabled = False

TxtRuDate.Enabled = False

TxtTel.Enabled = False

TxtAddress.Enabled = False

TxtComment.Enabled = False '設置信息為只讀

Dim tablename As String = "student_Info "

SearchSQL = "select * from student_Info "

ExecuteSQL(SearchSQL, tablename) '打開數據庫

ShowData() '顯示記錄

End Sub

Private Sub ShowData()

'在窗口中的textbox中顯示數據

myrow = mytable.Rows.Item(rownumber)

TxtSID.Text = myrow.Item(0).ToString

TxtName.Text = myrow.Item(1).ToString

ComboSex.Text = myrow.Item(2).ToString

TxtBornDate.Text = Format(myrow.Item(3), "yyyy-MM-dd ")

TxtClassno.Text = myrow.Item(4).ToString

TxtTel.Text = myrow.Item(5).ToString

TxtRuDate.Text = Format(CDate(myrow.Item(6)), "yyyy-MM-dd ")

TxtAddress.Text = myrow.Item(7).ToString

TxtComment.Text = myrow.Item(8).ToString

End Sub

Private Sub BtFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtFirst.Click

'指向第一條數據

rownumber = 0

ShowData()

End Sub

Private Sub BtPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtPrev.Click

'指向上一條數據

BtNext.Enabled = True

rownumber = rownumber - 1

If rownumber 0 Then

rownumber = 0 '如果到達記錄的首部,行號設為零

BtPrev.Enabled = False

End If

ShowData()

End Sub

Private Sub BtNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtNext.Click

'指向上一條數據

BtPrev.Enabled = True

rownumber = rownumber + 1

If rownumber mytable.Rows.Count - 1 Then

rownumber = mytable.Rows.Count - 1 '判斷是否到達最后一條數據

BtNext.Enabled = False

End If

ShowData()

End Sub

Private Sub BtLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtLast.Click

'指向最后一條數據

rownumber = mytable.Rows.Count - 1

ShowData()

End Sub

Private Sub BtDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtDelete.Click

mytable.Rows.Item(rownumber).Delete() '刪除記錄

If MsgBox( "確定要刪除改記錄嗎? ", MsgBoxStyle.OKCancel + vbExclamation, "警告 ") = MsgBoxResult.OK Then

cmd = New OleDbCommandBuilder(ADOcmd)

'使用自動生成的SQL語句

ADOcmd.Update(ds, "student_Info ")

BtNext.PerformClick()

End If

End Sub

Private Sub BtModify_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtModify.Click

TxtSID.Enabled = False '關鍵字段只讀

TxtName.Enabled = True '可讀寫

ComboSex.Enabled = True

TxtBornDate.Enabled = True

TxtClassno.Enabled = True

TxtRuDate.Enabled = True

TxtTel.Enabled = True

TxtAddress.Enabled = True

TxtComment.Enabled = True

End Sub

Private Sub BtUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtUpdate.Click

If Not Testtxt(TxtName.Text) Then

MsgBox( "請輸入姓名! ", vbOKOnly + vbExclamation, "警告 ")

TxtName.Focus()

Exit Sub

End If

If Not Testtxt(ComboSex.Text) Then

MsgBox( "請選擇性別! ", vbOKOnly + vbExclamation, "警告 ")

ComboSex.Focus()

Exit Sub

End If

If Not Testtxt(TxtClassno.Text) Then

MsgBox( "請選擇班號! ", vbOKOnly + vbExclamation, "警告 ")

TxtClassno.Focus()

Exit Sub

End If

If Not Testtxt(TxtTel.Text) Then

MsgBox( "請輸入聯系電話! ", vbOKOnly + vbExclamation, "警告 ")

TxtTel.Focus()

Exit Sub

End If

If Not Testtxt(TxtAddress.Text) Then

MsgBox( "請輸入家庭住址! ", vbOKOnly + vbExclamation, "警告 ")

TxtAddress.Focus()

Exit Sub

End If

If Not IsNumeric(Trim(TxtSID.Text)) Then

MsgBox( "請輸入數字學號! ", vbOKOnly + vbExclamation, "警告 ")

Exit Sub

TxtSID.Focus()

End If

If Not IsDate(TxtBornDate.Text) Then

MsgBox( "出生時間應輸入日期格式(yyyy-mm-dd)! ", vbOKOnly + vbExclamation, "警告 ")

Exit Sub

TxtBornDate.Focus()

End If

If Not IsDate(TxtRuDate.Text) Then

MsgBox( "入校時間應輸入日期格式(yyyy-mm-dd)! ", vbOKOnly + vbExclamation, "警告 ")

TxtRuDate.Focus()

Exit Sub

End If

myrow.Item(0) = Trim(TxtSID.Text)

myrow.Item(1) = Trim(TxtName.Text)

myrow.Item(2) = Trim(ComboSex.Text)

myrow.Item(3) = Trim(TxtBornDate.Text)

myrow.Item(4) = Trim(TxtClassno.Text)

myrow.Item(5) = Trim(TxtTel.Text)

myrow.Item(6) = Trim(TxtRuDate.Text)

myrow.Item(7) = Trim(TxtAddress.Text)

myrow.Item(8) = Trim(TxtComment.Text)

mytable.GetChanges()

cmd = New OleDbCommandBuilder(ADOcmd)

'使用自動生成的SQL語句

ADOcmd.Update(ds, "student_Info ")

'對數據庫進行更新

MsgBox( "修改學籍信息成功! ", vbOKOnly + vbExclamation, "警告 ")

TxtName.Enabled = False

ComboSex.Enabled = False

TxtBornDate.Enabled = False

TxtClassno.Enabled = False

TxtRuDate.Enabled = False

TxtTel.Enabled = False

TxtAddress.Enabled = False

TxtComment.Enabled = False '重新設置信息為只讀

End Sub

Private Sub BtCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtCancel.Click

TxtSID.Enabled = False

TxtName.Enabled = False

ComboSex.Enabled = False

TxtBornDate.Enabled = False

TxtClassno.Enabled = False

TxtRuDate.Enabled = False

TxtTel.Enabled = False

TxtAddress.Enabled = False

TxtComment.Enabled = False

End Sub

Public Function ExecuteSQL(ByVal SQL As String, ByVal table As String)

Try

'建立ADODataSetCommand對象

'數據庫查詢函數

ADOcmd = New OleDbDataAdapter(SQL, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\student.mdb ")

'建立ADODataSetCommand對象

ADOcmd.Fill(ds, table) '取得表單

mytable = ds.Tables.Item(0) '取得名為table的表

rownumber = 0 '設置為第一行

myrow = mytable.Rows.Item(rownumber)

'取得第一行數據

Catch

MsgBox(Err.Description)

End Try

End Function

End Class

請采納。

網站題目:vb.net操作數據庫,VB訪問數據庫
轉載源于:http://m.kartarina.com/article48/dsesphp.html

成都網站建設公司_創新互聯,為您提供軟件開發企業建站網站設計網站收錄網站維護全網營銷推廣

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 97久久精品亚洲中文字幕无码| 无码av天天av天天爽| 永久免费av无码网站大全| 亚洲AV无码成人网站在线观看| 亚洲日韩国产精品无码av| 亚洲?V无码成人精品区日韩 | 亚洲欧洲精品无码AV| 无码精品A∨在线观看十八禁| 久久久91人妻无码精品蜜桃HD| 无码人妻一区二区三区在线 | 国产精品无码专区在线观看| 午夜福利av无码一区二区| 亚洲国产精品无码久久青草| 亚洲av无码国产综合专区| 亚洲av无码专区国产乱码在线观看| 久久久精品天堂无码中文字幕| 亚洲AV无码日韩AV无码导航| 亚洲äv永久无码精品天堂久久 | 亚洲AV成人无码久久精品老人| 无码AV一区二区三区无码 | 婷婷四虎东京热无码群交双飞视频| 中文字幕精品无码一区二区| 无码色偷偷亚洲国内自拍| 人妻少妇看A偷人无码电影| 伊人久久精品无码av一区 | 中文字幕无码免费久久| 国产无码一区二区在线| 精品国产性色无码AV网站| 永久免费AV无码国产网站| 无码国产精品一区二区免费式直播| 亚洲一区爱区精品无码| 一本一道av中文字幕无码| 国产成年无码AV片在线韩国| 色欲香天天综合网无码| 人妻少妇无码视频在线| 精品少妇人妻av无码专区| 在线看片无码永久免费aⅴ| 黑人巨大无码中文字幕无码| 无码中文字幕色专区| 不卡无码人妻一区三区音频 | 日韩精品无码免费专区午夜|