serverstring = "Server=" 服務(wù)器IP ";DataBase=" 庫名 ";Userid=" 用戶名 ";Password=" 密碼
站在用戶的角度思考問題,與客戶深入溝通,找到普洱網(wǎng)站設(shè)計(jì)與普洱網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋普洱地區(qū)。
Try
Conn = New MySqlConnection(serverstring)
Conn.Open()
MsgBox("連接成功")
Conn.Dispose()
Conn.Close()
Catch ex As Exception
MsgBox("連接失?。?)
End Try
這是 mysql 的,自己改成 sql server 的就行了
在相應(yīng)的事件添加如下代碼:
Try
Dim TmpLitem As ListViewItem
Dim TmpStr As String = ""
For Each TmpLitem In Me.ListView1.SelectedItems
TmpStr += TmpLitem.SubItems.Item(0).Text.Trim
Next
MessageBox.Show(TmpStr)
Catch ex As Exception
End Try
應(yīng)該可以達(dá)到你想要的結(jié)果
因?yàn)镋xcel表的左上角的單元格都是以第一行第一列
MsgBox(LBound(arr, 1)) '一維最小下標(biāo)
MsgBox(LBound(arr, 2)) '二維最小下標(biāo)
測試:用上面函數(shù)(LBound)得到的結(jié)果都是1
您好,在Visual Basic.NET中,是沒有像這樣的文件I/O操作的,一般都是通過System.IO.StreamReader和System.IO.StreamWriter類,System.IO.BinaryReader和System.IO.BinaryWriter類來讀寫文件以及利用My.Computer.FileSystem類讀寫文件,利用System.IO.Filestream類來創(chuàng)建文件,通過引用Microsoft Scripting Runtime來執(zhí)行文件(夾)和驅(qū)動(dòng)器的特殊操作,常用的是System.IO.StreamReader和System.IO.StreamWriter類。
例如說要讀取一個(gè)文件,我們可以利用System.IO.StreamReader類編寫一個(gè)方法(也就是函數(shù)),但是首先要在當(dāng)前類的開頭添加一個(gè)引用,引用名稱:System.IO,添加引用的代碼如下
Imports System.IO
添加引用之后,就在當(dāng)前類的內(nèi)部創(chuàng)建方法:
Private Function ReadFile(ByVal FileURL As String) As String
Dim sr As StreamReader = New StreamReader(FileURL)
ReadFile = sr.ReadToEnd()
sr.Close()
sr = Nothing
End Function
示例說明:
該方法是一個(gè)返回String(字符串)數(shù)據(jù)的函數(shù),F(xiàn)ileURL作為參數(shù)是用來存放需要訪問的文件的URL,當(dāng)然,要獲取一個(gè)文件的URL,就是利用這一句代碼實(shí)現(xiàn)的:
Dim sr As StreamReader = New StreamReader(FileURL)
當(dāng)獲取了URL之后,就要對(duì)文件進(jìn)行讀取操作了,然后將讀取的結(jié)果返回給方法:
ReadFile = sr.ReadToEnd()
讀取文件完畢之后,要對(duì)文件執(zhí)行關(guān)閉操作:
sr.Close()
當(dāng)然別忘了清理資源:
sr = Nothing
StreamReader類可以從流或文件中讀取字符,在創(chuàng)建StreamREader類的對(duì)象時(shí),可以指定一個(gè)流對(duì)象,也可以指定一個(gè)文件URL,創(chuàng)建對(duì)象后就可以調(diào)用他的方法,從流中讀取數(shù)據(jù),其常用方法如下:
Peek:返回下一個(gè)可用字符,但不使用它。
Read:讀取輸入流中下一個(gè)字符或一組字符并移動(dòng)流或文件指針。
ReadBlock:從當(dāng)前流中讀取最大數(shù)量字符并從index開始將數(shù)據(jù)寫入buffer。
ReadLine:從當(dāng)前流中讀取一行字符并將字符作為String返回。
REadToEnd:從流的當(dāng)前位置到末尾讀取流。
Close:關(guān)閉打開的對(duì)象,釋放資源。
注:流,一種新的數(shù)據(jù)格式,這種格式可通過System.IO命名空間下的類訪問。流用Stream類表示,所有的流都是從這個(gè)類中繼承的。流向用戶提供了一個(gè)一般的數(shù)據(jù)視圖,隱藏了操作系統(tǒng)和底層設(shè)備的實(shí)現(xiàn)細(xì)節(jié),所有的流都支持讀寫操作。在打開文件時(shí)將返回對(duì)應(yīng)的流對(duì)象,用戶可以對(duì)流對(duì)象進(jìn)行讀寫操作。
如果要對(duì)文件執(zhí)行按行讀取操作,這時(shí)就會(huì)用到枚舉,這時(shí)候,代碼就要更改一下了:
Private Function ReadFile(ByVal FileURL As String) As String
Dim sr As StreamReader = New StreamReader(FileURL)
For Each fLine As String In sr.ReadToEnd()
Line = sr.ReadLine()
ReadFile = ReadFile fLine
Next sr.ReadLine
sr.Close()
End Function
示例說明:
For Each…Next:派生于For…Next循環(huán),用于枚舉一系列對(duì)象中的成員,而這些對(duì)象組成集合,如果集合中至少存在一個(gè)元素,程序就會(huì)靜茹For Each塊執(zhí)行。其格式如下:
For Each 元素 [As 數(shù)據(jù)類型] In 元素集合
[循環(huán)體]
[Exit For]
[循環(huán)體]
Next [元素]
比如:
Dim CountNumber As ULong = 0
Dim FolderName() As String = New String() {" "}
For Each strFolder As String In My.Computer.FileSystem.GetDirectories("C:\")
CountNumber = CountNumber + 1
ReDim Preserve FolderName(1 To CountNumber)
FolderName = strFolder
Next strFolder
注:My.Computer.FileSystem.GetDirectories:主要用來枚舉指定目錄的子文件夾。
Preserve:主要用來避免重定義數(shù)組而不損失數(shù)組元素的原有數(shù)據(jù)。
另外,利用My.Computer.FileSystem也可以實(shí)現(xiàn)文件的讀取,其代碼如下:
Dim fpReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt")
示例說明:
定義一個(gè)字符串變量利用My.Computer.FileSystem.ReadAllText來實(shí)現(xiàn)對(duì)“C:\test.txt”的讀取。
如果是已經(jīng)編碼的文本,則可以使用My.Computer.FileSystem對(duì)象中的ReadAllText方法并提供路徑和文件編碼類型,將文本寫入字符串變量中,例如:
Dim fpReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt", _
System.Text.Encoding.UTF32)
當(dāng)然,System.Text.Encoding的成員不止一個(gè),它還有如下成員:
System.Text.Encoding.UTF8
System.Text.Encoding.UTF16
System.Text.Encoding.ASCII
System.Text.Encoding.Unicode
這些是常見的成員,也是主要的成員。
另外,利用My.Computer.Filesystem類無法實(shí)現(xiàn)文件的行操作,還有,如果您的計(jì)算機(jī)未安裝完整的Microsoft.NET Framework Runtime,則無法實(shí)現(xiàn)這種操作!
寫入文件的操作同樣簡單,Visual Basic.NET 允許用戶使用StreamWriter來對(duì)文件寫入內(nèi)容,下面就讓我們來創(chuàng)建一個(gè)子例程,來實(shí)現(xiàn)文件的寫入:
Private Sub WriterFile(ByVal FileURL As String, ByVal FileCon As String)
Dim sr As StreamWriter = New StreamWriter(FileURL)
sr.Write(FileCon)
sr.Close()
sr = Nothing
End Sub
示例說明:
sr.Write(FileCon):將FileCon寫入文件FileURL之中。
另外,StreamWriter常用方法如下:
WriteLine:向流中寫入一行,后面跟結(jié)束符。
Write:寫入流,向流對(duì)象中寫入字符并移動(dòng)流或文件指針。
Close:關(guān)閉打開的對(duì)象,釋放資源。
附:Visual Basic 6.0文件操作解說:
打開: Open 文件名 For Input | Output | Append As [#]文件號(hào)
Input打開讀入,文件不存在報(bào)錯(cuò)。Output打開覆蓋寫入,文件不存在則創(chuàng)建。Append打 開追加寫入,文件不存在則創(chuàng)建。
讀: Line Input #文件號(hào), 字符串變量
讀一行數(shù)據(jù)存入字符串變量,數(shù)據(jù)包括空格、Tab、等,不包括回車符和換行符,所以要顯示文件的換行效果,要手動(dòng)添加回車符和換行符(vbCrLf)
Input #文件號(hào), 變量1[, | ;] [變量2]...
這種方式可以存入多個(gè)變量,而且變量類型不限于字符串型。
寫: Print #文件號(hào), 參數(shù)1[, | ;] [參數(shù)2]...
將各參數(shù)逐個(gè)寫入文件。參數(shù)間用逗號(hào)隔開時(shí),文件中相應(yīng)插入多個(gè)空格;用分號(hào)隔開時(shí),插入一個(gè)空格??梢杂肧pc(n)、Tab(n)等進(jìn)行排版。
Write #文件號(hào), 參數(shù)1[, | ;] [參數(shù)2]...
這種寫入方式將自動(dòng)添加界定符,對(duì)不同參數(shù)的類型加以界定。
Visual Basic 6.0文件操作函數(shù):
Seek: Seek(文件號(hào))
返回文件正在訪問的位置,返回值為長整型。對(duì)順序文件和二進(jìn)制文件,返回值以字節(jié)為單位;對(duì)隨機(jī)訪問文件,返回值以記錄號(hào)為單位。
Seek: Seek [#]文件號(hào),位置
定位文件到指定位置。位置單位同上所述。
Input: Input (字節(jié)數(shù),[#]文件號(hào))
從文件的訪問當(dāng)前位置讀入指定字節(jié)數(shù)的數(shù)據(jù)。僅適用于順序文件和二進(jìn)制文件。
EOF: EOF(文件號(hào))
判斷文件的訪問位置是否在文件尾,如果是,返回True,否則,返回False。
LOF: LOF(文件號(hào))
返回文件長度,單位為字節(jié)。
FileLen: FileLen (文件名)
返回文件名對(duì)應(yīng)文件的長度,單位是字節(jié)。該函數(shù)取磁盤文件標(biāo)識(shí)中的長度,即文件打開前的長度,可以取未打開的文件長度。
GetAttr: GetAttr (Pathname)
返回指定文件或文件夾的屬性。
FileAttr: FileAttr (文件號(hào))
返回文件號(hào)對(duì)應(yīng)文件的打開方式。
GetDateTime: GetDateTime (Pathname)
返回文件被創(chuàng)建或修改的最后日期和時(shí)間。
Free: FreeFile[(0|1)]
返回未被占用的文件號(hào),F(xiàn)ree或Free(0)返回1~255之間未占用的文件號(hào),F(xiàn)ree(1)返回256~511之間未占用的文件。
Dir: Dir (Pathname [,Attributes])
測試指定路徑是否有某文件,Attributes附加文件屬性條件,取值vbNormal、vbReadOnly、vbHidden、vbSystem、vbVolume、vbDirectory。
Kill: Kill (文件名)
刪除指定文件,文件名可包含路徑。
FileCopy: FileCopy 源文件,目標(biāo)文件
拷貝文件。
Name: Name 舊文件名 As 新文件名
文件重命名。前后路徑不一致時(shí),操作為移動(dòng)文件并重命名。
MkDir: MkDir path
新建文件夾。
RmDir: Rmdir path
刪除文件夾。
ChDrive: ChDrive Drive
改變當(dāng)前驅(qū)動(dòng)器 ChDrive "D"
CurDir: CurDir [(driver)]
返回當(dāng)前工作路徑,指定driver則返回目標(biāo)驅(qū)動(dòng)器的當(dāng)前工作路徑。
舉例:
'新建文件,并寫入數(shù)據(jù),關(guān)閉
Open "a.txt" For Output As #1
Print #1, "ABCDEFG"; vbCrLf; "HIJK"
Close #1
'打開文件,并全部寫入新文件,關(guān)閉
Open "a.txt" For Input As #2
Open "b.txt" For Output As #3
Dim str As String
While (Not EOF(2))
Line Input #2, str
Print #3, str
Wend
Close
注:關(guān)于Visual Basic 6.0的文件操作資料來自于
如果您覺得我的回答幫助了您解決難題,別忘了采納哦,如果我的回答未能解決您的問題,您可以在互聯(lián)網(wǎng)上尋找更多的解決方案!
測試結(jié)果如圖所示?,F(xiàn)象與你說明的情況是一樣的。
原因分析:你所聲明的數(shù)組a(4,1)實(shí)際上是a(0?to?4,?0?to?1)。在截圖下方的自動(dòng)窗口欄可以看到,當(dāng)程序運(yùn)行完For循環(huán)后,x的值已經(jīng)變?yōu)?,所以a(x,0)即為a(5,0),該變量與你聲明的a(4,1)也就是a(0?to?4,?0?to?1)比較,發(fā)現(xiàn)下標(biāo)已經(jīng)超限,也就是程序報(bào)出的錯(cuò)誤:索引超出了數(shù)組界限。
結(jié)束:a(x,?0)?=?Nothing?:?a(x,?1)?=?Nothing,不太理解該語句的主要目的,如果是為了釋放內(nèi)存,那么應(yīng)該直接a=Nothing。
歡迎交流如有需要,請(qǐng)留下QQ歡迎交流。
花了二十分鐘給你寫了代碼,已測試。建議學(xué)習(xí)并使用System.Drawing繪制。
主要是掌握Graphics.FillRectangle和DrawString的使用。
Imports?System.Drawing
Public?Class?進(jìn)度條UI
Public?上面筆刷?As?SolidBrush?=?New?SolidBrush(Color.FromArgb(192,?175,?238,?238))
Public?下面筆刷?As?SolidBrush?=?New?SolidBrush(Color.FromArgb(192,?30,?144,?255))
Public?文字筆?As?SolidBrush?=?New?SolidBrush(Color.FromArgb(255,?255,?255,?255))
Public?字體?As?Font?=?New?Font("微軟雅黑",?14.0)
Public?文字格式?As?StringFormat?=?New?StringFormat()?With
{.Alignment?=?StringAlignment.Center,?.LineAlignment?=?StringAlignment.Center}
'''?summary
'''?繪制指定進(jìn)度的圖像。
'''?當(dāng)進(jìn)度變化時(shí)調(diào)用一次本方法,建議將創(chuàng)建的Graphics對(duì)象保存到變量而不要重復(fù)創(chuàng)建。。
'''?/summary
'''?param?name="控件"繪制到此控件的工作區(qū)/param
'''?param?name="g"繪制到控件的Graphics對(duì)象,例如?Button1.CreateGraphics()/param
'''?param?name="進(jìn)度"進(jìn)度百分比實(shí)數(shù),57%?=?0.57/param
Public?Sub?繪制(ByRef?控件?As?Control,?ByRef?g?As?Graphics,?ByVal?進(jìn)度?As?Double)
Dim?矩形?=?控件.ClientRectangle?'獲取控件的工作區(qū)矩形
Dim?下面高度?=?CInt(矩形.Height?*?進(jìn)度)?'獲取下面顏色塊的高度
Dim?中間位置?=?矩形.Top?+?矩形.Height?-?下面高度?'獲取中間分界線的Y坐標(biāo)
Dim?上矩形?=?New?Rectangle(矩形.X,?矩形.Y,?矩形.Width,?矩形.Height?-?下面高度)
Dim?下矩形?=?New?Rectangle(矩形.X,?中間位置,?矩形.Width,?下面高度)
g.FillRectangle(上面筆刷,?上矩形)
g.FillRectangle(下面筆刷,?下矩形)
'繪制文字
Dim?文字?As?String?=?String.Format("{0:0.00}%",?進(jìn)度?*?100)
g.DrawString(文字,?字體,?文字筆,?矩形,?文字格式)
End?Sub
End?Class
下面是Form1窗體的代碼:添加一個(gè)Button1和Timer1控件,將Button1尺寸拖大點(diǎn)
Public?Class?Form1
Public?g?As?Graphics
Public?進(jìn)度條UI?As?New?進(jìn)度條UI
Public?進(jìn)度?As?Double
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
g?=?Button1.CreateGraphics()
Timer1.Enabled?=?Not?Timer1.Enabled
End?Sub
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
進(jìn)度?+=?0.01
進(jìn)度條UI.繪制(Button1,?g,?進(jìn)度)
End?Sub
End?Class