码迷,mamicode.com
首页 > 数据库 > 详细

WPF 一个数据库连接测试的实现

时间:2016-07-23 18:15:18      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

要实现的功能效果图如下:因为我们要测试数据是从输入框获得的,所以,我们的连接字符串不是写死在应用程序中的。下面我就详细介绍一下。

 

技术分享        技术分享

首先,我们要找到 项目下——》Properties->Setiings.setting

技术分享

新建一个连接字符串名称,类型为 string,重点重点 范围一定要设置为 用户,这样的话我们才可以重写base.在继承的基础上覆盖上次的连接字符串。 如果我们不设置为用户而设置为应用程序获的话,将会不可改变连接字符串。

在EF框架中,我们每new一个 DataContext便会有一个数据库表的映射。它的逻辑是,我们new的时候(此例子 datacontext是 StockManageDataContext)会执行

    public StockManageDataContext() :
        base(global::DataModal.Properties.Settings.Default.StockManageSystemConnectionString, mappingSource)
    {
        
        Console.WriteLine(global::DataModal.Properties.Settings.Default.StockManageSystemConnectionString);
        OnCreated();
    }
        
        public StockManageDataContext(string connection) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }
        
        public StockManageDataContext(System.Data.IDbConnection connection) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }
        
        public StockManageDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }
        
        public StockManageDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }
global::DataModal.Properties.Settings.Default.StockManageSystemConnectionString, mappingSource)这个代码中就是可以覆盖的连接字符串,我们只需要更改他就行。

连接测试代码来了来了
        public bool ConnectionTest()
        {

            //获得连接字符串
            string ConnectionString = "Data Source=" + Server.Text + ";Initial Catalog=" + Sqlname.Text + ";Persist Security Info=True;User ID=" + Account.Text + ";Password=" + Pass.Text;
            SqlConnection _SqlConnection = new SqlConnection(ConnectionString);
            try
            {

                _SqlConnection.Open();
                SqlCommand sqlcmd = _SqlConnection.CreateCommand();
                sqlcmd.CommandText = "select top 10 * from ProductInfo;";
                //如果可以连接成功则 保存数据库连接字符串          
                DataModal.Properties.Settings.Default.StockManageSystemConnectionString = ConnectionString;
                DataModal.Properties.Settings.Default.Save();//使用Save方法保存更改 n
                MessageBox.Show("测试连接正常", "恭喜");

                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("不能连接数据库,请重新设置", "警告");
                return false;

            }
            finally
            {
                _SqlConnection.Close();
            }
        }

这样就可以进行测试了,在每次登陆之前都要验证一遍。

 

还有一个比较人性化的问题,就是用户希望在每次登陆之前都有几个数据库连接默认的值,毕竟大家不愿意去动手输入那么多数据,但是又不可以直接写死在输入框(这样太low),所以,既然之前我们可以给连接字符串赋值,我们也可以获取上次的连接字符串,拆分,然后在窗体初始化时默认加载到窗体输入框嘛。

代码:(根据键值对获得,)

        public void Innital()
        {
            string connect = DataModal.Properties.Settings.Default.StockManageSystemConnectionString;
            Dictionary<string, string> dictionary = connect.Split(new char[] { ; }, StringSplitOptions.RemoveEmptyEntries).ToDictionary(x => x.Split(=)[0], x => x.Split(=)[1]);
            List<string> test = new List<string>(dictionary.Values);
            for (int i = 0; i < test.Count; i++)
            {
                Server.Text = test[0];
                Sqlname.Text = test[1];
                Pass.Text = test[4];
                Account.Text = test[3];
            }
        }

 

 



WPF 一个数据库连接测试的实现

标签:

原文地址:http://www.cnblogs.com/wenjieyatou/p/5699037.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!