list1.additem j 意思就是把j添加至list1列表中,這是在一個for 循環(huán)中,循環(huán)了10次,添加了10次 j,即 list1 中 有10列分別為:1,3,6,10,15,21,28,36,45,55
為蕉嶺等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及蕉嶺網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、成都做網(wǎng)站、蕉嶺網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
下面又來了一個循環(huán), list1.removeitem 刪除列,刪除的是 list1.listcount - i ,list1.listcount 就是總列數(shù)為10,減去 i ,i 是1到4,即10-1,9-2,8-3,7-4 每減掉一次,list1.listcount 就少了一條記錄。
(注意,list1.listcount-1 是最后一條記錄)
減掉了第 9,7,5,3列
剩余為 1,3,6,15,28,45
結(jié)果為:3,15,28
'ListCount返回列表框中的項目總數(shù)
'ListCount-1是列表框中最后一個項目的索引號
'虧你提醒了,我寫錯了,上面修改了,第一個索引為0,最后一個為9.
'也就是,問題所問的第二列的索引為1,第四列的索引為3...
我 看了一下應(yīng)該是你第一次連接上后,cnn.open就打開并持續(xù)開著,并沒有關(guān)閉,所以,你斷網(wǎng)后,第二次連接,他依然是打開的。
另外:
我個人建議你要學(xué)會用vb.net的組件,自己連太麻煩,他有現(xiàn)成的,你直接在數(shù)據(jù)庫里選擇添加新數(shù)據(jù)源,按照提示把數(shù)據(jù)庫添加上,然后,你會看到你的程序下面會多了個數(shù)據(jù)集(dataset).
最后要做的就是使用這些數(shù)據(jù)集了。以form1為例,你添加一個datagridview,然后在他的數(shù)據(jù)源上選擇剛才添加的項數(shù)據(jù)集中的某個數(shù)據(jù)表,然后你會看到,在form1中多了一個dataadapter,sqlconn,datset,并且在form1的load事件中,你會發(fā)現(xiàn)多了一條語句,dataadapet.fill(dataset)。
當(dāng)你運(yùn)行程序并更改了datagridview后,想要更新數(shù)據(jù),只需要在后面,增加一個button,并設(shè)置他的click事件為:dataadapter.update(dataset)
怎么樣,是不是還有一個問題想問?就是如何更改數(shù)據(jù)源,很簡單,在form1的load事件中,dataadapter.fill(dataset)這條語句之前,再增加一條,sqlconn.ConnectionString = "server=**;database=**;uid=**;pwd=**;Connect TimeOut=2"這個就是你的數(shù)據(jù)源。
希望我的答案能令你滿意。
第一個問題,存儲數(shù)據(jù):使用SqlCommand(如果是Sql的):Using cmd As New SqlCommand()?0?2 ?0?2cmd.Connection = new SqlConnection("server=.;database=數(shù)據(jù)庫名;integrated security=sspi")?0?2 ?0?2cmd.Connection.Open()?0?2 ?0?2cmd.CommandText=string.Format("Insert into 表名字 Values('{0}','{1}'",您的第一個字符串變量,第二個字符串變量【如果是數(shù)值類型的,不要在索引前加單引號了】)?0?2 cmd.NonExecuteQuery();'獲取數(shù)據(jù)SqlDataAdapter adapter = new SqlDataAdapter(cmd);cmd.CommandText="select * from 表"DataTable dt = new DataTable()adapter.Fill(dt)DataGridView.DataSource = dtEnd Using
你為什么不將大量數(shù)據(jù)組織到DataSet或DataTable中,或者數(shù)組中。然后用循環(huán)來添加?
如果數(shù)據(jù)在 Excel 中你可以通過 工程--引用 選擇 Excel Libery 11.0 (office2007 是12.0)
然后通過代碼來訪問Excel工作表。
dim xlapp as new excel.application
xlapp.workbooks.open (path filename) 比如: ....open ("c:\my.xls")
訪問Excel工作表中的數(shù)據(jù),給你一個范例,你就可以自己通過循環(huán)來實(shí)現(xiàn)了:
要讀取sheet1,A1的數(shù)據(jù):
dim data1 as string
data1=xlapp.workbooks("my.xls").sheets("sheet1").cells(1,1)
如果是 B5 那么就是Cells(5,2)找到規(guī)律了?
這個地方,你可以通過 with來簡化
這樣,你也不需要過度直接就可以添加到listview中了。
最后,記得用xlapp.workbooks("my.xls").close savechanges:=false
set xlapp = nothing
如果你要導(dǎo)入到 listview中還不如導(dǎo)入到 DataGridView中 listview中只有第一列的數(shù)據(jù)可以修改,而DataGridView的用法就非常靈活了,如果你一開始導(dǎo)入到DataTable中,還可以通過DataView來進(jìn)行數(shù)據(jù)篩選
我覺得你是不是該給我加加分呀?說的我累死了
要使用ListView控件,需要加入組件:
Microsoft Windows Common Controls 6.0
Windows資源管理器的右半部分,就是一個ListView控件。
作用
列出并列關(guān)系的對象及對象屬性。
ListView控件的對象層次結(jié)構(gòu)
ListView -整個控件
ColumnHeaders -標(biāo)題行
ColumnHeader -標(biāo)題列
ListItems -對象行集合
ListItem -對象行
ListSubItems -對象屬性集合
ListSubItem -對象屬性
注意:SubItems和ListSubItems的區(qū)別:SubItems是一個String數(shù)組;ListSubItems是一個集合。
屬性
View:設(shè)置ListView的外觀
Sorted:設(shè)置ListView中的對象集合是否排序。
SortKey:設(shè)置以第幾項排序。從零開始。
SelectedItem:返回選中的對象的引用。
事件
AfterLabelEdit:編輯ListItem對象的標(biāo)簽時被觸發(fā)。
BeforeLabelEdit:編輯ListItem對象的標(biāo)簽后出發(fā)。
ColumnClick:單擊列標(biāo)題時觸發(fā)。參數(shù)中可以獲得被單擊的列對象。通常用于排序。
ItemClick:單擊某行或某ListItem時觸發(fā)。參數(shù)中可以獲得被單擊的ListItem對象。
方法
FindItem:搜索ListItem對象。
參數(shù):
string:搜索字符串。
value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:開始搜索的位置。
match:匹配方式。
HitTest:檢索位于特定坐標(biāo)處的ListItem對象。
ListView控件比前面幾種控件要復(fù)雜一些,通過此控件,可將項目組成帶有或不帶有列標(biāo)頭的列,并顯示伴隨的圖標(biāo)和文本。ListView控件是由ColumnHeader和ListItem對象所組成的,其中ColumnHeader對象的個數(shù)決定了控件的列數(shù),而ListItem對象的個數(shù)則決定了控件的行數(shù)。(圖7)
ColumnHeader對象是ListView控件中包含標(biāo)頭文字的項目。利用ColumnHeader對象,用戶可以:
▲單擊對象觸發(fā)ColumnClick事件并根據(jù)數(shù)據(jù)項目將項目排序。
▲拖動對象的右邊框來調(diào)整列寬度。
▲在報表視圖中隱藏ColumnHeader對象。
ColumnHeader對象的數(shù)目決定每個ListItem對象可包含的子項目數(shù)目。刪除ColumnHeader對象后所有與列關(guān)聯(lián)的子項目也將被刪除,并且每個ListItem對象的子項目數(shù)組將平移以更新ColumnHeader的索引,而這將導(dǎo)致剩余的列標(biāo)頭SubItemIndex屬性的改變。
ColumnHeader對象的SubItemIndex屬性
該屬性返回與ListView控件中ColumnHeader對象關(guān)聯(lián)的子項目的索引。子項目是字符串?dāng)?shù)組,代表顯示在報表視圖中的ListItem對象的數(shù)據(jù)。第一列的列標(biāo)頭SubItemIndex屬性設(shè)置為0,這是因?yàn)樾D標(biāo)和ListItem對象的文字總出現(xiàn)在第一列中,而且它們被當(dāng)作ListItem對象而不是子項目。列標(biāo)頭數(shù)目取決于子項目數(shù)目。列標(biāo)頭數(shù)目總是比子項目數(shù)目多1。
在設(shè)計時可以利用屬性頁的“列首”選項卡將ColumnHeader對象添加到ListView控件中,在運(yùn)行時則用Add方法添加。
ColumnHeader對象的Add方法
該方法的使用與前面那些控件基本相似,就不再介紹了。
ListView1.ColumnHeader.Add(index,key,text,width,alignment)
ListItem對象是指控件中的一行(不包含標(biāo)頭行)的所有內(nèi)容。它也可包含文本和圖片,但是要使用圖片則必須通過Icons和SmallIcons屬性引用ImageList控件。
ListItem對象的SubItems屬性
返回或設(shè)置一個字符串(子項目)數(shù)組,它代表ListView控件中ListItem對象的數(shù)據(jù)。
ListItem對象可包含任意多個的關(guān)聯(lián)項目數(shù)據(jù)字符串(子項目),但每個ListItem對象子項目數(shù)目必須相同。每個子項目都對應(yīng)于相關(guān)的列標(biāo)頭,無法直接向子項目數(shù)組添加元素,只有通過ColumnHeaders的Add方法添加列標(biāo)頭的方法來添加子項目。
ListItem對象的Add方法
該方法添加ListItem對象到ListView控件的ListItems集合中并返回對新創(chuàng)建對象的引用。
它的語法如下:
ListItem1.Add(index,key,text,icon,smallIcon)
ListView控件的View屬性
ListView控件可使用四種不同視圖顯示項目,這可以用View屬性來確定。該屬性返回或設(shè)置ListView控件中ListItem對象的外觀。
ListView控件的SortOrder,SortKey和Sorted屬性
控件中的ListItem對象可以按要求進(jìn)行排序,與排序有關(guān)的屬性是SortOrder,Sorted和SortKey屬性。
SortOrder屬性返回或設(shè)置一個值,此值決定ListView控件中的ListItem對象以升序或降序排序。
SortKey屬性返回或設(shè)置一個值,此值決定ListView控件中的ListItem對象如何排序。
Sorted屬性返回或設(shè)置確定ListView控件中的ListItem對象是否排序的值。
下面的代碼說明了如何創(chuàng)建ColumnHeaders和ListItem對象,SubItemIndex和SubItem屬性的使用方法以及如何排序。
Private Sub Form_load()
'確保ListView控件的view屬性為報表視圖。
ListView1.View=lvwReport
'添加三列。
ListView1.ColumnHeaders.Add,"Name","姓名"
ListView1.ColumnHeaders.Add,"Sex","性別"
ListView1.ColumnHeaders.Add,"Age","年齡"
'向控件添加ListItem對象。
Dim itmX As ListItem
'添加column1的名稱。
Set itmX=ListView1.ListItems.Add(1,"ZL","張力")
'使用SubItemIndex將SubItem與正確的ColumnHeader關(guān)聯(lián)。使用關(guān)鍵字("Sex")指定正確的ColumnHeader。
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
'使用ColumnHeader關(guān)鍵字將SubItems字符串與
'正確的ColumnHeader關(guān)聯(lián)。
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19"
Set itmX=ListView1.ListItems.Add(1,"LF","李芳")
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="22"
Set itmX=ListView1.ListItems.Add(1,"WW","王偉")
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="24"
End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ComctlLib.ColumnHeader)
Select Case ColumnHeader.Key
Case "Sex":ListView1.SortKey=1
ListView1.SortOrder=lvwAscending
ListView1.Sorted=True
Case "Age":ListView1.SortKey=2
ListView1.SortOrder=lvwAscending
ListView1.Sorted=True
End Select
End Sub