26. august 2005 - 12:14Der er
22 kommentarer og 1 løsning
Update DB vha. DataSet
Hej Jeg har en problem med at få opdateret databasen. Når jeg trykker på en knap vil jeg gerne have dataene i datagrid’e over i DB. Jeg har prøvet med denne kommando men får en fejl i ”DataRow[]... ” linien. Nogen der kan se hvad der er galt? public DataSet createCmdsAndUpdate(string tableName) { adapter.SelectCommand = new OleDbCommand("SELECT * FROM ["+tableName+"];", con); OleDbCommandBuilder ODCB = new OleDbCommandBuilder(adapter); DataRow[] myDataRowArray = dataSet.Tables[0].Select(null, null, DataViewRowState.Added); adapter.Update(myDataRowArray); DataSet xDataSet = dataSet.GetChanges(DataRowState.Modified); con.Close(); return dataSet; try { if (dataSet.HasChanges() == false) { dataSet.RejectChanges(); }
if (dataSet.HasChanges() == true) { adapter.Update(xDataSet,tableName); dataSet.AcceptChanges(); } } catch (Exception ex) { // Update error, resolve and try again } }
øhh glemte lige at skrive at jeg kalder ovenstående metode fra metoden: private void SkrivDB_Click(object sender, System.EventArgs e) { acconn = new AccesConnect(); dataSet = acconn.createCmdsAndUpdate(TN); } fra en anden klasse.
Nu har jeg så forsøgt at simplificere koden lidt, dog uden held. public DataSet CreateCmdsAndUpdate(string tableName) { adapter.SelectCommand = new OleDbCommand("SELECT * FROM ["+tableName+"];", con); OleDbCommandBuilder ODCB = new OleDbCommandBuilder(adapter);
DataSet dataSet = new DataSet(); adapter.Fill(dataSet, tableName); adapter.Update(dataSet, tableName); dataSet.AcceptChanges();
public DataSet CreateCmdsAndUpdate(string tableName) { OleDbConnection myConn = new OleDbConnection(myConnection); OleDbDataAdapter adapter = new OleDbDataAdapter(); adapter.SelectCommand = new OleDbCommand("SELECT * FROM ["+tableName+"];", con); OleDbCommandBuilder ODCB = new OleDbCommandBuilder(adapter);
myConn.Open();
DataSet dataSet = new DataSet(); adapter.Fill(dataSet);
//code to modify data in dataset here adapter.Update(dataSet, tableName);
Bliver nødt til at lave 1. line i metoden om til: OleDbConnection con = new OleDbConnection(); Men får fejlen: An unhandled exception of type 'System.InvalidOperationException' occurred in system.data.dll
Additional information: The ConnectionString property has not been initialized.
Jeg kan se at det er denne samme metode jeg har forsøgt at lave min om til...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.