tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
406
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Smile85 Smile85 ist offline Grünschnabel
    Registriert seit
    Nov 2008
    Beiträge
    4
    Hallo bräuchte wieder mal eure Hilfe!
    Vorweg muss ich sagen dass ich Anfänger bin!!

    Ich arbeite mit Visual C++ 2008 Express Edition

    Und zwar hab ich folgendes Problem, ich habe ein Sql-Datenbank in der ich eine Tabelle habe die aus drei Spalten besteht, wobei die Spalten keine Einträge NULL zulassen. Weiters habe ich einen bindingNavigator, bei denn ich noch zusätzlich einen Button “Speichern“ dazugefügt habe. Weiters habe ich noch eine Textbox, eine ComboBox und ein DateTimePicker, über die ich die einzelnen Spalten in der Datenbank befülle, bzw. Updates durchführe.
    Nun zum eigentlichen Problem, wenn ich auf den Button “Neu Hinzufügen“ klicke sind automatisch in der ComboBox der letzte Eintrag zu sehen gleiches gilt für das DateTimePicker (das soll auch so bleiben), nur wenn ich jetzt anschließend auf den Button “Speichern“ klicke, bricht das Programm mit folgender Fehlermeldung ab : Es können keine Werte NULL in die Spalte 2 bzw. Spalte 3 eingefügt werden.
    Wie kann ich denn Programm mitteilen das er automatisch die sichtbaren Werte übernimmt,
    ohne mit einer Fehlermeldung das Programm zu beenden?

    Danke schon mal in Voraus!
    Mit freundlichen Grüßen
    Martin
     

  2. #2
    Avatar von ToDu
    ToDu ToDu ist offline Mitglied Bronze
    Registriert seit
    Apr 2006
    Beiträge
    30
    Hmmm wie sieht dein SQL-Command aus?
    Hast du die Werte aus den Feldern in selbigem berücksichtigt?
    Hast du vorher auch UpdateData ausgeführt?


    Mfg

    ToDu
     
    Rächtschreipfehlersindarbeitsplätzbedungt.

  3. #3
    Smile85 Smile85 ist offline Grünschnabel
    Registriert seit
    Nov 2008
    Beiträge
    4
    Habe mit folgenden Code gearbeitet:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    //Verbindung Datenbank Lohnsteuer
            SqlDataAdapter ^dbAdapter2;
            DataSet ^dataSet2;
            BindingSource ^bindingSource2;
            array<int> ^dbRang;
            array<String^> ^dbAVAEAB;
            array<DateTime> ^dbSeit;

    Code :
    1
    2
    3
    4
    5
    6
    
                                                                    dbAdapter2 =nullptr;
                dataSet2 =nullptr;
                bindingSource2 =nullptr;
                dbRang = gcnew array<int>(20);
                dbAVAEAB = gcnew array<String^>(20);
                dbSeit = gcnew array<DateTime>(20);

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    
    String ^abfrageString2 = "SELECT * FROM TabelleLohnsteuer";
                        SqlConnection ^verbindung2 = gcnew SqlConnection(verbindungsstr);
                        dbAdapter2 =gcnew SqlDataAdapter(abfrageString2, verbindung2);
                        dataSet2 =gcnew DataSet();
                        dataSet2->Tables->Add("TabelleLohnsteuer");
                        dbAdapter2->Fill(dataSet2, "TabelleLohnsteuer");
                        bindingSource2 =gcnew BindingSource();
                        bindingSource2->DataSource=dataSet2;
                        bindingSource2->DataMember="TabelleLohnsteuer";
                        
                        
                        bindingNavigator1->BindingSource=bindingSource2;
                        
                        textBox2->DataBindings->Add(gcnew Binding("Text",
                                                bindingSource2,
                                                "Rang"));
                        
                        comboBox3->DataBindings->Add(gcnew Binding("Text", 
                                                 bindingSource2, 
                                                 "AVAEAB"));
     
                        dateTimePicker2->DataBindings->Add(gcnew Binding("Text", 
                                                 bindingSource2, 
                                                 "Seit"));
                    
                        
                        verbindung = gcnew SqlConnection(verbindungsstr);
                        verbindung->Open(); 
                        befehl = verbindung->CreateCommand();
                        befehl->CommandText = "SELECT * FROM TabelleLohnsteuer";
                        leser = befehl->ExecuteReader();
                        aktDatensatz = -1;
                        while (leser->Read())
                            {
                                aktDatensatz++;
                                dbRang[aktDatensatz] = leser->GetInt32(0);
                                dbAVAEAB[aktDatensatz] = leser->GetString(1);
                                dbSeit[aktDatensatz] = leser->GetDateTime(2);
     
                            }
                        
                        ListView ^listVie1 =gcnew ListView();
                        listView1->View=View::Details;
                        listView1->Columns->Add("Rang",80,HorizontalAlignment::Center);
                        listView1->Columns->Add("AVAEAB",170,HorizontalAlignment::Center);
                        listView1->Columns->Add("Seit",120,HorizontalAlignment::Center);
                        
                        int count=bindingSource2->Count;            
                        int i;
                        for(i=0;i<count;i++)
                            {
                                listView1->Items->Add(Convert::ToString(dbRang[i]));
                                listView1->Items[i]->SubItems->Add(dbAVAEAB[i]);
                                DateTime date= DateTime(dbSeit[i]);
                                str=date.ToString("d");
                                listView1->Items[i]->SubItems->Add(Convert::ToString(str));
                            }
                                        
                    
                        SqlCommandBuilder ^commandBuilder2 = gcnew SqlCommandBuilder(dbAdapter2);

    Mit dem Speicher-Button
    im Bindingnavigator löse ich folgenden Code aus.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    bindingSource2->EndEdit();
                dbAdapter2->Update(dataSet2->Tables["TabelleLohnsteuer"]);
     
                listView1->Items->Clear();
     
                verbindung = gcnew SqlConnection(verbindungsstr);
                        verbindung->Open(); 
                        befehl = verbindung->CreateCommand();
                        befehl->CommandText = "SELECT * FROM TabelleLohnsteuer";
                        leser = befehl->ExecuteReader();
                        aktDatensatz = -1;
                        while (leser->Read())
                            {
                                aktDatensatz++;
                                dbRang[aktDatensatz] = leser->GetInt32(0);
                                dbAVAEAB[aktDatensatz] = leser->GetString(1);
                                dbSeit[aktDatensatz] = leser->GetDateTime(2);
     
                            }
                        
                        
                        int count=bindingSource2->Count;            
                        int i;
                        for(i=0;i<count;i++)
                            {
                                listView1->Items->Add(Convert::ToString(dbRang[i]));
                                listView1->Items[i]->SubItems->Add(dbAVAEAB[i]);
                                DateTime date= DateTime(dbSeit[i]);
                                str=date.ToString("d");
                                listView1->Items[i]->SubItems->Add(Convert::ToString(str));
                            }

    Mfg Martin
     

Ähnliche Themen

  1. Mit Koordinaten in einer Datenbank arbeiten
    Von LegacyOfHate im Forum PHP
    Antworten: 2
    Letzter Beitrag: 02.12.08, 19:38
  2. Zu zweit an einer access datenbank arbeiten (live)
    Von Xanacas im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 11.01.08, 15:52
  3. access datenbank mehrere anwender gleichzeitig arbeiten
    Von siegpes im Forum Office-Anwendungen
    Antworten: 5
    Letzter Beitrag: 01.09.05, 18:37
  4. Arbeiten mit Access Datenbank Zugriff
    Von Radicula im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 28.06.05, 23:24
  5. Mit USB arbeiten!
    Von flashgod im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 08.08.03, 09:04