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

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 (....)";

Δημοσ.

Την εφαρμογή που δημιουργώ την κάνω σε NET 2 δεν ξέρω αν αυτό παίζει το ρόλο του , αλλά δεν βλέπω το properties που μου αναφέρεις για τον adapter.

Δημοσ.

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

 

 

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();

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

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

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