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 } }
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
ø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.