数据库链接测试

2015-12-20 10:02:35  访问(1380) 赞(0) 踩(0)


相关下载:SlowX.DBConnectionTestApp[code]  SlowX.DBConnectionTestApp[release]  百度网盘     



  • 
            /// <summary>
            /// _SqlServer
            /// </summary>
            const string _SqlServer = "SqlServer";
    
            /// <summary>
            /// _Oracle
            /// </summary>
            const string _Oracle = "Oracle";
    
            /// <summary>
            /// _Access
            /// </summary>
            const string _Access = "_Access";
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void toolStripButton_测试链接_Click(object sender, EventArgs e)
            {
                label_Result.Text = "";
    
                DBOperHelper dh = DBOperHelper.instance;
    
                string dbConnectionString = cbb_dbConnectionString.Text.Trim();
                
    
                if (dbConnectionString.Length == 0)
                {
                    MessageBox.Show("请输入数据库链接串。");
                    return;
                }
                
                string strDBType = GetDBTypeCheck();
    
                if (strDBType == null || strDBType.Length == 0)
                {
                    MessageBox.Show("请选择数据库类型。");
                    return;
                }
    
                MainDataSource = dh.InsertOrUpdateDBConnItem
                    (
                        MainDataSource, 
                        dbConnectionString, 
                        strDBType
                    );
    
                try
                {
                    string theResult = null;
    
                    switch (strDBType)
                    {
                        case _Oracle:
                            theResult = OracleConnTest(dbConnectionString);
                            break;
                        case _SqlServer:
                            theResult = SqlServerConnTest(dbConnectionString);
                            break;
                        case _Access:
                            theResult = AccessConnTest(dbConnectionString);
                            break;
    
                    }
    
                    if (theResult == null)
                    {
                        label_Result.Text = "";
                    }
                    else
                    {
                        if (theResult.StartsWith("-"))
                        {
                            label_Result.Text = theResult.Substring(1);
                            label_Result.ForeColor = System.Drawing.Color.Red;
                        }
                        else
                        {
                            label_Result.Text = theResult;
                            label_Result.ForeColor = System.Drawing.Color.Blue;
                        }
    
                    }
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message);
                }
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="dbConnectionString"></param>
            /// <returns></returns>
            protected string SqlServerConnTest(string dbConnectionString)
            {
                string theResult = null;
    
                SqlConnection conn = null;
                SqlCommand cmd = null;
    
                try
                {
                    conn = new SqlConnection(dbConnectionString);
                    conn.Open();
    
                    cmd = new SqlCommand();
                    cmd.CommandText = "select getdate() as retValue ";
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = conn;
    
                    object obj = cmd.ExecuteScalar();
    
                    if (obj != null)
                    {
                        theResult = "连接成功,当前数据库时间为:" + obj.ToString();
                    }
                    else
                    {
                        theResult = "连接成功";
                    }
                }
                catch (Exception err)
                {
                    theResult = "-连接失败,发生异常:" + err.Message;
                }
                finally
                {
                    if (cmd != null)
                    {
                        cmd.Parameters.Clear();
                        cmd.Dispose();
                        cmd = null;
                    }
    
                    if (conn != null)
                    {
                        if (conn.State != ConnectionState.Closed)
                        {
                            conn.Close();
                        }
    
                        conn.Dispose();
                        conn = null;
                    }
                }
    
                return theResult;
            }
    
    
            /// <summary>
            /// 测试Access数据库连接
            /// </summary>
            /// <param name="dbConnectionString"></param>
            /// <returns></returns>
            protected string AccessConnTest(string dbConnectionString)
            {
                string theResult = null;
    
                OleDbConnection conn = null;
                OleDbCommand cmd = null;
    
                try
                {
                    conn = new OleDbConnection(dbConnectionString);
                    conn.Open();
    
                    cmd = new OleDbCommand();
                    cmd.CommandText = "select now() as retValue ";
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = conn;
    
                    object obj = cmd.ExecuteScalar();
    
                    if (obj != null)
                    {
                        theResult = "连接成功,当前数据库时间为:" + obj.ToString();
                    }
                    else
                    {
                        theResult = "连接成功";
                    }
                }
                catch (Exception err)
                {
                    theResult = "-连接失败,发生异常:" + err.Message;
                }
                finally
                {
                    if (cmd != null)
                    {
                        cmd.Parameters.Clear();
                        cmd.Dispose();
                        cmd = null;
                    }
    
                    if (conn != null)
                    {
                        if (conn.State != ConnectionState.Closed)
                        {
                            conn.Close();
                        }
    
                        conn.Dispose();
                        conn = null;
                    }
                }
    
                return theResult;
            }
    
            /// <summary>
            /// 测试Oracle的链接
            /// </summary>
            /// <param name="dbConnectionString"></param>
            /// <returns></returns>
            protected string OracleConnTest(string dbConnectionString)
            {
                string theResult = null;
    
               OracleConnection conn = null;
               OracleCommand cmd = null;
    
                try
                {
                    conn = new OracleConnection(dbConnectionString);
                    conn.Open();
    
                    cmd = new OracleCommand();
                    cmd.CommandText = "select sysdate as retValue from sys.dual ";
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = conn;
    
                    object obj = cmd.ExecuteScalar();
    
                    if (obj != null)
                    {
                        theResult = "连接成功,当前数据库时间为:" + obj.ToString();
                    }
                    else
                    {
                        theResult = "连接成功";
                    }
                }
                catch (Exception err)
                {
                    theResult = "-连接失败,发生异常:" + err.Message;
                }
                finally
                {
                    if (cmd != null)
                    {
                        cmd.Parameters.Clear();
                        cmd.Dispose();
                        cmd = null;
                    }
    
                    if (conn != null)
                    {
                        if (conn.State != ConnectionState.Closed)
                        {
                            conn.Close();
                        }
    
                        conn.Dispose();
                        conn = null;
                    }
                }
    
                return theResult;
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void toolStripButton_复制错误提示_Click(object sender, EventArgs e)
            {
                Clipboard.SetDataObject(label_Result.Text);
            }
    

标签:数据库链接测试 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)