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));
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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;
        }