public DbCommandBuilder GetCommandBuilder(DbDataAdapter adapter) { string dbType = db.GetDataAdapter().GetType().ToString(); Type createType = null; switch (dbType) { case "System.Data.Odbc.OdbcDataAdapter": createType = new System.Data.Odbc.OdbcCommandBuilder().GetType(); break; case "System.Data.OleDb.OleDbDataAdapter": createType = new System.Data.OleDb.OleDbCommandBuilder().GetType(); break; case "System.Data.SqlClient.SqlDataAdapter": createType = new System.Data.SqlClient.SqlCommandBuilder().GetType(); break; /*case "System.Data.SqlServerCe.SqlCeCommand": * createType = "System.Data.SqlServerCe.SqlCeCommandBuilder"; * break;*/ default: return(null); } if (adapter != null) { return((DbCommandBuilder)System.Activator.CreateInstance(createType, adapter)); } else { return((DbCommandBuilder)System.Activator.CreateInstance(createType)); } }
public int UpdateDataTable(string sql, System.Data.DataTable dt, System.Data.Odbc.OdbcDataAdapter sda) { int i = 0; try { System.Data.Odbc.OdbcCommandBuilder builder = new System.Data.Odbc.OdbcCommandBuilder(sda); sda.UpdateCommand = builder.GetUpdateCommand(); if (dt.GetChanges() != null) { i = sda.Update(dt); dt = GetDataTable(sql); } } catch (Exception ex) { MessageBox.Show("Error:" + ex.Message.ToString()); return(-1); } return(i); }
public static bool UpdateDataSource(System.Data.DataTable data, System.Collections.Specialized.ListDictionary addressbook, anmar.SharpWebMail.IEmailClient client) { bool error = false; if (data == null || addressbook == null || !addressbook.Contains("connectionstring") || !addressbook.Contains("searchstring") || !addressbook.Contains("allowupdate") || !((bool)addressbook["allowupdate"])) { return(false); } System.String connectstring = addressbook["connectionstring"].ToString(); System.String connectusername = null, connectpassword = null; if (addressbook.Contains("connectionusername") && addressbook.Contains("connectionpassword")) { connectusername = addressbook["connectionusername"].ToString(); connectpassword = addressbook["connectionpassword"].ToString(); } else if (client != null) { connectusername = client.UserName; connectpassword = client.Password; } System.String searchfilter = addressbook["searchstring"].ToString(); if (client != null) { searchfilter = searchfilter.Replace("$USERNAME$", client.UserName); } else { searchfilter = searchfilter.Replace("$USERNAME$", System.String.Empty); } System.Data.Common.DbDataAdapter adapter = GetDataAdapter(addressbook["type"].ToString(), connectstring, connectusername, connectpassword, searchfilter); if (adapter != null) { try { if (addressbook["type"].Equals("odbc")) { System.Data.Odbc.OdbcCommandBuilder builder = new System.Data.Odbc.OdbcCommandBuilder(adapter as System.Data.Odbc.OdbcDataAdapter); adapter.Update(data); builder = null; } else if (addressbook["type"].Equals("oledb")) { System.Data.OleDb.OleDbCommandBuilder builder = new System.Data.OleDb.OleDbCommandBuilder(adapter as System.Data.OleDb.OleDbDataAdapter); adapter.Update(data); builder = null; } } catch (System.Exception e) { if (log.IsErrorEnabled) { log.Error(System.String.Concat("Error updating address book [", addressbook["name"], "] for user [", client.UserName, "]"), e); } error = true; } } else { error = true; } adapter = null; return(!error); }
public static bool UpdateDataSource(System.Data.DataTable data, System.Collections.Specialized.ListDictionary addressbook, anmar.SharpWebMail.IEmailClient client) { bool error = false; if ( data==null || addressbook==null || !addressbook.Contains("connectionstring") || !addressbook.Contains("searchstring") || !addressbook.Contains("allowupdate") || !((bool)addressbook["allowupdate"]) ) return false; System.String connectstring = addressbook["connectionstring"].ToString(); System.String connectusername = null, connectpassword = null; if ( addressbook.Contains("connectionusername") && addressbook.Contains("connectionpassword") ) { connectusername = addressbook["connectionusername"].ToString(); connectpassword = addressbook["connectionpassword"].ToString(); } else if ( client!=null ) { connectusername = client.UserName; connectpassword = client.Password; } System.String searchfilter = addressbook["searchstring"].ToString(); if ( client!=null ) searchfilter=searchfilter.Replace("$USERNAME$", client.UserName); else searchfilter=searchfilter.Replace("$USERNAME$", System.String.Empty); System.Data.Common.DbDataAdapter adapter = GetDataAdapter(addressbook["type"].ToString(), connectstring, connectusername, connectpassword, searchfilter); if ( adapter!=null ) { try { if ( addressbook["type"].Equals("odbc") ) { System.Data.Odbc.OdbcCommandBuilder builder = new System.Data.Odbc.OdbcCommandBuilder(adapter as System.Data.Odbc.OdbcDataAdapter); adapter.Update(data); builder = null; } else if ( addressbook["type"].Equals("oledb") ) { System.Data.OleDb.OleDbCommandBuilder builder = new System.Data.OleDb.OleDbCommandBuilder(adapter as System.Data.OleDb.OleDbDataAdapter); adapter.Update(data); builder = null; } } catch ( System.Exception e ) { if ( log.IsErrorEnabled ) log.Error(System.String.Concat("Error updating address book [", addressbook["name"], "] for user [", client.UserName, "]" ), e); error = true; } } else { error = true; } adapter = null; return !error; }