Προς το περιεχόμενο

C# 2008 με SQL SERVER 2008


Neptous

Προτεινόμενες αναρτήσεις

Έχω το εξής πρόβλημα , ο παρακάτω κώδικας κάνει μια εισαγωγή σε μια βάση με sql server 2008 , κάθε φορά που εκτελώ το κομμάτι του κώδικα μου εμφανίζει το έξεις λάθος :

 

<<To update απαιτεί ένα έγκυρο InsertCommand κατά τη διαβίβαση μιας συλλογής DataRow με νέες γραμμές.>>

 

Με ενδιαφέρει η εισαγωγή και αργότερα η διαγραφή και η ενημέρωση να γίνουν οπωσδήποτε με την χρήση DataAdapter , DataSet δεν θέλω να χρησιμοποιήσω καμία άλλη μέθοδο αν μπορούμε να βρούμε το λάθος σε αυτό των κώδικα :

try

{

 

SqlConnection workscon;

SqlDataAdapter workadapter;

DataRow dr;

 

 

workscon = new SqlConnection();

workscon.ConnectionString = set.Default.WORKSCONDB.ToString();

workscon.Open();

 

workadapter = new SqlDataAdapter("SELECT * FROM dbo.WORKS", workscon);

DataSet workdataset = new DataSet("dbo.WORKS");

workadapter.Fill(workdataset, "dbo.WORKS");

 

dr = workdataset.Tables["dbo.WORKS"].NewRow();

 

dr["ID"] = "12" ;

 

workdataset.Tables["dbo.WORKS"].Rows.Add(dr);

 

workadapter.Update(workdataset.Tables["dbo.WORKS"]);

 

workscon.Close();

}

 

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

 

 

Να σημειώσω ότι το table του πίνακα έχει 8 πεδία κανένα δεν είναι unique και κανένα δεν θέλει υποχρεωτική τιμή …..

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το workadapter έχει ένα property που λέγεται InsertCommand. Φαντάζομαι πως θα πρέπει να του δώσεις τιμή το insert statement, δηλαδή workadapter.InsertStaement = "INSERT INTO dbo.Works (....) VALUES (....)";

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τελικός αυτή είναι η δομή της εντολής για την εισαγωγή …

 

 

workscon = new SqlConnection();

workscon.ConnectionString =set.Default.WORKSCONDB.ToString();

workscon.Open();

 

SqlDataAdapter workadapter = new SqlDataAdapter("SELECT * FROM works", workscon);

 

SqlCommandBuilder builder = new SqlCommandBuilder(workadapter);

 

DataSet ds = new DataSet("WORKSET");

 

workadapter.Fill(ds, "WORKS");

 

 

DataRow row = ds.Tables["WORKS"].NewRow();

 

row["TECHINICALNAME"] = cmbtechnical.Text ;

 

ds.Tables["WORKS"].Rows.Add (row);

workadapter.Update(ds, "WORKS");

 

workscon.Close();

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...