Prevod pole do Array ? -DataGirdView   otázka

VB.NET

Zdravim

mozna sem si nabehl, ale nemuzu na to prijit

Mam na formulari prvek DataGirdView, ktery se snazim naplnit z pole - toto pole nacitam z databazove tabulky, kde si vybiram jen urcite sloupce -ale nedari se mi to nahodit do DataGirView, stale se mi to vklada do jednoho sloupce.

Kod vypada takto

  ' pridani dat do DataGirdView
        Dim m_sRowData As String
        With Me.dgwProject.Rows
            For i As Integer = 0 To UBound(m_asProject, 2)
                m_sRowData = vbNullString
                For j As Byte = 0 To UBound(m_asProject, 1)
                    m_sRowData &= m_asProject(j, i).Trim & ", "
                Next
                ' odstranim prebytecnou carku nakonci
                m_sRowData = Mid(m_sRowData, 1, m_sRowData.Length - 2)                
               .Add(m_sRowData)
            Next
        End With

v poli m_asProject - ktere ma 2 rozmery,

1 rozmer- mam ulozeny pocet radku = i

2 rozmer - hodnoty z databazove tabulky (sloupce) =j

data z pole pak retezim do stringove promenne m_sRowData

vysledek, pak treba vypada takto

m_sRowData = "Jarda, pepa, lojza"

Ocekaval bych, ze budou tyto 3 jmena ve trech sloupcich, ale hazou se mi vsechny do jednoho. V napovede jsem nasel, krasny priklad, ale oni pouzivaji promennou string jako array. viz. nize.

Myslite ze je to tim? A pokud ano, jak mam prevest svoji normalni stringovou promenou na neco takoveho, co pouzivaji oni?

 ' Create the string array for each row of data.
    Dim row0 As String() = {"11/22/1968", "29", "Revolution 9", "Beatles", "The Beatles [White Album]"}
    Dim row1 As String() = {"4/4/1960", "6", "Fools Rush In", _
        "Frank Sinatra", "Nice 'N' Easy"}
    
    ' Add a row for each string array.
    With Me.dataGridView1.Rows
        .Add(row0)
        .Add(row1)
    End With

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak sem na to opravdu neprisel

Ale zda se mi to, divne, ze by to neslo programove vlozit hodnoty.

Nakonec jsem napojil DataGridView na Dataset a byl klid

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Samozřejmě problém je v tom, že Vy nejprve svá data v každém řádku pracně poslepujete do jednoho stringu a ten pak cpete do datagridu.

Jenomže ten nemůže pochopit, že byste chtěl tento string zase rozdělit na 3 samostatné položky tak, aby je mohl vložit do 3 různých sloupců.

Pokud chcete zůstat u své filosofie, musíte místo "řetězení" využít pole stringů.

Pŕoto zkuste upravit Váš kód třeba nějak takto:

With Me.dgwProject.Rows
   For i As Integer = 0 To UBound(m_asProject, 2)
      dim m_sRowData(UBound(m_asProject, 1)) as string
      For j As Byte = 0 To UBound(m_asProject, 1)
        m_sRowData(j)= m_asProject(j, i).Trim 
      Next
                
      .Add(m_sRowData)
   Next
End With

přiznám se, nekontroloval jsem ostatní funkční části Vašeho kódu (správnost indexů apod.), ale pokud Vám to ve Vaší verzi fungovalo tak, jak popisujete, mohlo by to po této úpravě fungovat i s dělením do sloupců.

Omluvte případné chyby, píšu to bez možnosti vyzkoušení.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback