要实现的功能效果图如下:因为我们要测试数据是从输入框获得的,所以,我们的连接字符串不是写死在应用程序中的。下面我就详细介绍一下。
首先,我们要找到 项目下——》Properties->Setiings.setting
新建一个连接字符串名称,类型为 string,重点重点 范围一定要设置为 用户,这样的话我们才可以重写base.在继承的基础上覆盖上次的连接字符串。 如果我们不设置为用户而设置为应用程序获的话,将会不可改变连接字符串。
在EF框架中,我们每new一个 DataContext便会有一个数据库表的映射。它的逻辑是,我们new的时候(此例子 datacontext是 )会执行
(
Console.WriteLine(</span><span style="color: #0000ff;">global</span><span style="color: #000000;">::DataModal.Properties.Settings.Default.StockManageSystemConnectionString);
OnCreated();
}
</span><span style="color: #0000ff;">public</span> StockManageDataContext(<span style="color: #0000ff;">string</span><span style="color: #000000;"> connection) :
</span><span style="color: #0000ff;">base</span><span style="color: #000000;">(connection,mappingSource)
{
OnCreated();
}
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> StockManageDataContext(System.Data.IDbConnection connection) :
</span><span style="color: #0000ff;">base</span><span style="color: #000000;">(connection,mappingSource)
{
OnCreated();
}
</span><span style="color: #0000ff;">public</span> StockManageDataContext(<span style="color: #0000ff;">string</span><span style="color: #000000;"> connection,System.Data.Linq.Mapping.MappingSource mappingSource) :
</span><span style="color: #0000ff;">base</span><span style="color: #000000;">(connection,mappingSource)
{
OnCreated();
}
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> StockManageDataContext(System.Data.IDbConnection connection,mappingSource)
{
OnCreated();
}</span></pre>
这个代码中就是可以覆盖的连接字符串,我们只需要更改他就行。
</span><span style="color: #008000;">//</span><span style="color: #008000;">获得连接字符串</span>
<span style="color: #0000ff;">string</span> ConnectionString = <span style="color: #800000;">"</span><span style="color: #800000;">Data Source=</span><span style="color: #800000;">"</span> + Server.Text + <span style="color: #800000;">"</span><span style="color: #800000;">;Initial Catalog=</span><span style="color: #800000;">"</span> + Sqlname.Text + <span style="color: #800000;">"</span><span style="color: #800000;">;Persist Security Info=True;User ID=</span><span style="color: #800000;">"</span> + Account.Text + <span style="color: #800000;">"</span><span style="color: #800000;">;Password=</span><span style="color: #800000;">"</span> +<span style="color: #000000;"> Pass.Text;
SqlConnection _SqlConnection </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(ConnectionString);
</span><span style="color: #0000ff;">try</span><span style="color: #000000;">
{
_SqlConnection.Open();
SqlCommand sqlcmd </span>=<span style="color: #000000;"> _SqlConnection.CreateCommand();
sqlcmd.CommandText </span>= <span style="color: #800000;">"</span><span style="color: #800000;">select top 10 * from ProductInfo;</span><span style="color: #800000;">"</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">如果可以连接成功则 保存数据库连接字符串 </span>
DataModal.Properties.Settings.Default.StockManageSystemConnectionString =<span style="color: #000000;"> ConnectionString;
DataModal.Properties.Settings.Default.Save();</span><span style="color: #008000;">//</span><span style="color: #008000;">使用Save方法保存更改 n</span>
MessageBox.Show(<span style="color: #800000;">"</span><span style="color: #800000;">测试连接正常</span><span style="color: #800000;">"</span>,<span style="color: #800000;">"</span><span style="color: #800000;">恭喜</span><span style="color: #800000;">"</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #000000;">;
}
</span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception ex)
{
MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">不能连接数据库,请重新设置</span><span style="color: #800000;">"</span>,<span style="color: #800000;">"</span><span style="color: #800000;">警告</span><span style="color: #800000;">"</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;
}
</span><span style="color: #0000ff;">finally</span><span style="color: #000000;">
{
_SqlConnection.Close();
}
}</span></pre>
这样就可以进行测试了,在每次登陆之前都要验证一遍。
还有一个比较人性化的问题,就是用户希望在每次登陆之前都有几个数据库连接默认的值,毕竟大家不愿意去动手输入那么多数据,但是又不可以直接写死在输入框(这样太low),所以,既然之前我们可以给连接字符串赋值,我们也可以获取上次的连接字符串,拆分,然后在窗体初始化时默认加载到窗体输入框嘛。
代码:(根据键值对获得,)
connect =<,> dictionary = connect.Split( [] { },StringSplitOptions.RemoveEmptyEntries).ToDictionary(x => x.Split()[],x => x.Split()[<> test = List<> ( i = ; i < test.Count; i++= test[= test[= test[= test[
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。