Sida 1 av 1

Problem med C# och SQL Server Express

Postat: 24 oktober 2007, 21:15:34
av thepirateboy
Jag får ett felmeddelande när jag försöker uppdatera databasen om jag tar bort en rad i databasen
"Update requires a valid DeleteCommand when passed DataRow collection with deleted rows."

Har försökt läsa de tips man får genom google men jag får inte till det.

Nån som är bra på sånt här? Kan tillägga att jag är helt grön på databaser och C#.

Postat: 24 oktober 2007, 21:28:05
av sodjan
> när jag försöker uppdatera databasen...

Hur då ? Vad är det du gör ? Kod ?

Postat: 24 oktober 2007, 21:43:28
av thepirateboy
Jag har följt nån "wizard" i Microsoft-anda för att fixa en databas och Form för redigering. men nånstans måste det gått snett.

När jag tar bort en rad med röda krysset och försöker spara får jag felmeddelandet, annars inte. Som jag läst ska nåt DeleteCommand läggas till men hur och var?

Bild


Händelsehanteraren för sparaknappen (disketten).

Kod: Markera allt

private void table1BindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.table1BindingSource.EndEdit();
            //SqlCommandBuilder builder = new SqlCommandBuilder(table1TableAdapter);

            try
            {
                RFID_DataSet changes = (RFID_DataSet)rFID_DataSet.GetChanges();
                this.table1TableAdapter.Update(changes);
                rFID_DataSet.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "Errors",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                rFID_DataSet.RejectChanges();
            }
        }

Postat: 24 oktober 2007, 22:07:38
av sodjan
Jag vet inte ett smack om de verktyg du använder eller det fel du får,
men "DataRow update DeleteCommand" i google verkar ge rätt svar
i flera av de fem första träffarna...

Postat: 24 oktober 2007, 22:17:27
av kifkroker
tjenare

det är något i stil med att din table1TableAdapter behöver sql kommandon för upddate och insert, någon som man kan skriva själv (dom heter table1TableAdapter.insertCommand och table1TableAdapter.updatecommand) eller så kan man låta en sqlcommandbuilder göra jobbet utefter den select kod du specificerat för tabeladaptern. (som jag ser att du kommenterat bort) sqlcommandbuilderb behöver dock lite grejer av databasen såsom schema och eventuellt en primary key kolumn, vilet inte alltid finns i äldre databaser osv.

Det jag skrivit är sant för mySqls Connector/Net, men teorierna är lika andra databasanslutningar såsom det sätt du använder. Referens för mySqls sqlcommandbuilder: http://dev.mysql.com/doc/refman/5.1/en/ ... ilder.html

Postat: 24 oktober 2007, 22:34:37
av thepirateboy
Ok, jag tror polletterna börjar ramla ner nu, eventuellt...

Ska sova på saken så gör jag ett nytt försök imorrn.

Postat: 24 oktober 2007, 22:51:45
av kifkroker
gott, återkom om det uppstår fler specifika frågor, orkar inte gå in på detaljerna kring precis allt om det inte finns några problem =) dröm nu om sqlcommandbuilders