コード例 #1
0
 private void btnTestConnection_Click(object sender, EventArgs e)
 {
     try
     {
         if (checkData())
         {
             ThreadPool.QueueUserWorkItem(o =>
             {
                 DbConfigInfo dbConfigInfo = getDbConfigInfo();
                 string conString          =
                     dbConfigInfo.ConnectionString.Trim(new char[] { '"' });
                 string dbProvider =
                     DBType.GetDbProviderString(dbConfigInfo.DbType);
                 DNCCFrameWork.DataAccess.IDbHelper db =
                     new DNCCFrameWork.DataAccess.DbFactory(conString,
                                                            dbProvider).
                     IDbHelper;
                 bool success = db.TestConnection();
                 string tip   = "数据库连接失败";
                 if (success)
                 {
                     tip = "数据库连接成功";
                 }
                 MessageBox.Show(this, tip, "提示", MessageBoxButtons.OK,
                                 MessageBoxIcon.Information,
                                 MessageBoxDefaultButton.Button1);
             });
         }
     }
     catch (System.Data.Common.DbException ex)
     {
         MessageBox.Show(this, ex.Message, "异常提示", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
     }
 }
コード例 #2
0
ファイル: ExecuteSql.cs プロジェクト: 15831944/tool
        private void execute()
        {
            try
            {
                DNCCFrameWork.DataAccess.IDbHelper db = new DNCCFrameWork.DataAccess.DbFactory(
                    gt.dbConnectionString.Trim(new[] { '"' }),
                    DBType.GetDbProviderString(gt.dbType)).IDbHelper;

                string[] sql = tbScript.Text.Split(new[] { "--MQ TG" }, StringSplitOptions.RemoveEmptyEntries);
                if (gt.OriginalEncoding != null && gt.TargetEncoding != null)
                {
                    foreach (string str in sql)
                    {
                        if (!string.IsNullOrEmpty(str))
                        {
                            db.ExecuteNonQuery(str);
                        }
                    }
                }

                MessageBox.Show(this, "执行成功", "提示", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, "执行失败[" + ex.Message + "]", "提示",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
        }
コード例 #3
0
ファイル: tableInfoForm.cs プロジェクト: 15831944/tool
        private void execute()
        {
            try
            {
                bool   flag = false;
                string temp = tbComment.Text.Trim();
                if (!string.IsNullOrEmpty(temp))
                {
                    DataRow[] drs = sc.dsTable.Tables[sc.dbName + sc.DBtable].Select("name = '" + tableInfo.TableName + "'");

                    if (drs != null && drs.Length > 0)
                    {
                        drs[0]["comments"] = temp;
                        flag = true;
                        DBFileHelper.WriteXml(sc.dsTable);
                    }
                }
                foreach (ColumnInfo column in tableInfo.Columns)
                {
                    if (column.IsChanged)
                    {
                        temp = column.Comments;
                        DataRow[] drs = sc.dsTableColumn.Tables[sc.dbName + sc.DBtablesColumns].Select("TABLE_NAME = '" + tableInfo.TableName + "' and COLUMN_NAME = '" + column.Name + "'");
                        drs[0]["COMMENTS"] = temp;
                        flag = true;
                        DBFileHelper.WriteXml(sc.dsTableColumn);
                    }
                }
                if (flag && cbExecuteDB.Checked)
                {
                    DNCCFrameWork.DataAccess.IDbHelper db =
                        new DNCCFrameWork.DataAccess.DbFactory(
                            sc.dbConnectionString.Trim(new[] { '"' }),
                            DBType.GetDbProviderString(sc.dbType))
                        .IDbHelper;
                    string[] sql = createCommentSql().Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

                    foreach (var s in sql)
                    {
                        if (!string.IsNullOrEmpty(s))
                        {
                            string t = s.Trim(new[] { '\t', '\r', '\n', ' ', ';' });
                            if (sc.OriginalEncoding != null &&
                                sc.TargetEncoding != null)
                            {
                                t = EncodingHelper.
                                    ConvertEncoder(sc.TargetEncoding,
                                                   sc.OriginalEncoding,
                                                   t);
                            }
                            if (!string.IsNullOrEmpty(t))
                            {
                                db.ExecuteNonQuery(t);
                            }
                        }
                    }
                }
                MessageBox.Show(this, "执行成功", "提示", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, "执行失败[" + ex.Message + "]", "提示",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
        }
コード例 #4
0
        private void LoadDbInfoBySync(bool reloadDb)
        {
            _isLoadSuccess = false;
            DbConfigInfo dbConfigInfo = GetCurenctDbConfigInfo();

            IniConfigHelper.WriteDefaultDBInfo(dbConfigInfo);
            string TargetEncoding   = "";
            string OriginalEncoding = "";

            if (dbConfigInfo != null)
            {
                try
                {
                    #region 贡献当前数据库配置信息


                    TargetEncoding   = dbConfigInfo.DbEncoder;
                    OriginalEncoding = EncodingHelper.OriginalEncoding;


                    registerObject(PluginShareHelper.TargetEncoding, TargetEncoding);
                    registerObject(PluginShareHelper.OriginalEncoding, OriginalEncoding);

                    registerObject(PluginShareHelper.DBCurrentDBName, dbConfigInfo.DbConfigName);
                    registerObject(PluginShareHelper.DBCurrentDBConnectionString, dbConfigInfo.ConnectionString.Trim('"'));
                    registerObject(PluginShareHelper.DBCurrentDBType, dbConfigInfo.DbType);
                    #endregion

                    #region 加载所有表信息


                    SetStatusBar(string.Format("正在获取{0}中所有表信息", dbConfigInfo.DbConfigName));
                    SetProgress(0);

                    if (_dsTable.Tables.Contains(dbConfigInfo.DbConfigName + Tables))
                    {
                        _dsTable.Tables.Remove(dbConfigInfo.DbConfigName + Tables);
                    }

                    #region 从本地读取数据
                    bool status = DBFileHelper.IsExist(dbConfigInfo.DbConfigName, Tables);

                    if (!reloadDb)
                    {
                        if (status)
                        {
                            DBFileHelper.ReadXml(_dsTable, dbConfigInfo.DbConfigName, Tables);
                        }
                    }
                    #endregion

                    #region  从数据库中读取数据
                    if (!status || reloadDb)
                    {
                        DNCCFrameWork.DataAccess.IDbHelper db = new DNCCFrameWork.DataAccess.DbFactory(dbConfigInfo.ConnectionString.Trim(new[] { '"' }), DBType.GetDbProviderString(dbConfigInfo.DbType)).IDbHelper;
                        string  sql  = SqlDefHelper.GetTableNames(dbConfigInfo.DbType);
                        DataSet temp = new DataSet();

                        db.Fill(sql, temp, new[] { dbConfigInfo.DbConfigName + Tables });

                        temp = DBFileHelper.WriteXml(temp, OriginalEncoding, TargetEncoding);//缓存表数据到本地

                        _dsTable.Merge(temp);
                    }
                    #endregion

                    SetStatusBar(string.Format("{0}所有表信息加载完毕", dbConfigInfo.DbConfigName));
                    SetProgress(10);
                    #endregion

                    #region 加载所有表主键
                    SetStatusBar(string.Format("正在获取{0}中所有表主键信息", dbConfigInfo.DbConfigName));

                    if (_dsTablePrimaryKey.Tables.Contains(dbConfigInfo.DbConfigName + TablesPrimaryKeys))
                    {
                        _dsTablePrimaryKey.Tables.Remove(dbConfigInfo.DbConfigName + TablesPrimaryKeys);
                    }

                    #region 从本地读取数据
                    status = DBFileHelper.IsExist(dbConfigInfo.DbConfigName, TablesPrimaryKeys);
                    if (!reloadDb)
                    {
                        if (status)
                        {
                            DBFileHelper.ReadXml(_dsTablePrimaryKey, dbConfigInfo.DbConfigName, TablesPrimaryKeys);
                        }
                    }
                    #endregion

                    #region  从数据库中读取数据
                    if (!status || reloadDb)
                    {
                        DNCCFrameWork.DataAccess.IDbHelper db = new DNCCFrameWork.DataAccess.DbFactory(dbConfigInfo.ConnectionString.Trim(new[] { '"' }), DBType.GetDbProviderString(dbConfigInfo.DbType)).IDbHelper;
                        string  sql  = SqlDefHelper.GetAllTablePrimaryKeys(dbConfigInfo.DbType);
                        DataSet temp = new DataSet();
                        db.Fill(sql, temp, new[] { dbConfigInfo.DbConfigName + TablesPrimaryKeys });
                        temp = DBFileHelper.WriteXml(temp, OriginalEncoding, TargetEncoding);//缓存表数据到本地
                        _dsTablePrimaryKey.Merge(temp);
                    }
                    #endregion

                    SetStatusBar(string.Format("{0}所有表主键信息加载完毕", dbConfigInfo.DbConfigName));
                    SetProgress(10);
                    #endregion

                    #region 构造树形结构
                    BindTreeBySync();
                    #endregion

                    #region 加载所有表字段信息

                    SetStatusBar(string.Format("正在获取{0}中所有表字段信息", dbConfigInfo.DbConfigName));

                    if (_dsTableColumn.Tables.Contains(dbConfigInfo.DbConfigName + TablesColumns))
                    {
                        _dsTableColumn.Tables.Remove(dbConfigInfo.DbConfigName + TablesColumns);
                    }

                    #region 从本地读取表字段信息
                    status = DBFileHelper.IsExist(dbConfigInfo.DbConfigName, TablesColumns);
                    if (!reloadDb)
                    {
                        if (status)
                        {
                            DBFileHelper.ReadXml(_dsTableColumn, dbConfigInfo.DbConfigName, TablesColumns);
                            SetProgress(80);
                        }
                    }
                    #endregion

                    #region 从数据库读取表字段信息
                    if (!status || reloadDb)
                    {
                        DNCCFrameWork.DataAccess.IDbHelper db = new DNCCFrameWork.DataAccess.DbFactory(dbConfigInfo.ConnectionString.Trim(new[] { '"' }), DBType.GetDbProviderString(dbConfigInfo.DbType)).IDbHelper;

                        int count = _dsTable.Tables[dbConfigInfo.DbConfigName + Tables].Rows.Count;
                        if (count != 0)
                        {
                            int     temp1       = count / 7;
                            bool    isDivisible = count % temp1 == 0;
                            string  sql         = SqlDefHelper.GetTableColumnNames(dbConfigInfo.DbType);
                            DataSet dsTemp      = new DataSet();
                            for (int i = 0; i < count; i++)
                            {
                                DataRow dr     = _dsTable.Tables[dbConfigInfo.DbConfigName + Tables].Rows[i];
                                var     temp   = new DataSet();
                                var     dicPar = new Dictionary <string, string> {
                                    { "@tableName", dr["name"] as string }
                                };
                                SetStatusBar(string.Format("正在获取{0}中{1}字段信息", dbConfigInfo.DbConfigName,
                                                           dr["name"] as string));
                                db.Fill(sql, temp, new[] { dbConfigInfo.DbConfigName + TablesColumns }, dicPar);
                                dsTemp.Merge(temp);
                                if (i % temp1 == 0)
                                {
                                    SetProgress(10);
                                }
                            }
                            dsTemp = DBFileHelper.WriteXml(dsTemp, OriginalEncoding, TargetEncoding); //缓存表字段数据到本地,

                            _dsTableColumn.Merge(dsTemp);


                            if (!isDivisible)
                            {
                                SetProgress(10);
                            }
                        }
                    }
                    #endregion

                    SetEnable(true);

                    #endregion

                    _isLoadSuccess = true;
                }
                catch (Exception ex)
                {
                    SetStatusBar(string.Format("加载数据失败[{0}]", ex.Message));
                }
            }
            else
            {
                SetStatusBar("加载数据失败[没有获取到数据库配置]");
            }
        }