把数据库连接字符串写入注册表

考虑到用户可能更换SQL Server服务器,所以数据库连接字符串不能写成固定的。我们可以把它写入一个文件,需要的时候访问它即可以了。

下面的方法是把它写入注册表(写入注册表是为了考虑到安全性,也可以写入某个xml文件)

using Microsoft.Win32;

         private   void  SetRegistryKey( string  name, string  connstr)
        
{
            RegistryKey rk
=Registry.LocalMachine;
            RegistryKey srk
=rk.OpenSubKey("software",true);

            
if(srk.OpenSubKey("Sunsoft/SunWebExam")==null)
                srk.CreateSubKey(
"Sunsoft/SunWebExam");

            RegistryKey crk
=srk.OpenSubKey("Sunsoft/SunWebExam",true);
            crk.SetValue(name,connstr);

            rk.Close();
            srk.Close();
            crk.Close();
            
        }
 
         private   void  btnSave_Click( object  sender, System.EventArgs e)
        
{
            
string connString="packet size=4096;data source=";
            
//string connString="provider=SQLOLEDB;packet size=4096;data source=";
            connString+=txtServer.Text.Trim()+";user id=";
            connString
+=txtUser.Text.Trim()+";pwd=";
            connString
+=txtPwd.Text.Trim()+";persist security info=False;initial catalog=SunWebExam";

            
//
            
//todo:写入注册表
            
//
            SetRegistryKey("Server",connString);
            
            
this.DialogResult=DialogResult.OK;
            
this.Close();
        }

 

         /// <summary>
        
/// 打开数据库连接.
        
/// </summary>

         private   void  Open() 
        
{
            
// 打开数据库连接
            if (con == null
            
{

                RegistryKey rk
=Registry.LocalMachine;
                RegistryKey subrk
=rk.OpenSubKey("software/Sunsoft/SunWebExam");
                
string connString=(string)subrk.GetValue("server");
                con 
= new SqlConnection(connString);
                con.Open();
            }
                
            
if(con.State ==System.Data.ConnectionState.Closed)
                con.Open();

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值