关于数据库连接登录

问题描述

做了个登录窗口,登录成功后打开主窗口主窗口Form_main这么写的:privatevoidForm_main_Load(objectsender,EventArgse){Form_loginlogin=newForm_login();login.ShowDialog();}

登录窗口Form_login中这么写的:privatevoidForm1_Load(objectsender,EventArgse){}privatevoidbutton1_Click(objectsender,EventArgse){stringdatasource,catalog,userid,passwd;datasource=textBox1.Text;catalog=textBox2.Text;userid=textBox3.Text;passwd=textBox4.Text;stringconStr=@"DataSource="+datasource+";InitialCatalog="+catalog+";UserId="+userid+";Password="+passwd+";";SqlConnectionconnection=newSqlConnection(conStr);try{connection.Open();MessageBox.Show("Sql连接成功!","恭喜",MessageBoxButtons.OK,MessageBoxIcon.Information);this.Close();}catch(Exception){MessageBox.Show("Sql连接失败,请检查设置参数与网络连接!","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);}finally{SqlConnection.ClearPool(connection);}}

有几个疑问:1.SQL登录成功之后,关闭LOGIN窗口,SQL的连接是否还存在?我在主窗口执行SQL操作是否还需要重新连接?2.finally里面到底该用connection.close();还是connection.dispose();还是clearpool(connection)?正规写法是怎样的?2.这些代码在VS2010执行没有问题,但是到VS2013上执行,LOGIN窗口中SQL不管登录是否成功都直接跳出main窗口,没有任何messagebox弹出,跳出main窗口后,login窗口也不自己关闭。这VS2013是什么情况?

解决方案

解决方案二:
1.没了,关闭之后资源就释放了。你可以传参,将连接传回去。2.一般断开连接我用connection.close();我也不知道是不是正规=。=3.connection.Open();加断点F10调试一下。
解决方案三:
关闭后login窗体的connection就访问不到了,你可以将连接放到一个全局变量
解决方案四:
按理以上代码在2013里不会有问题,你单步调试看有没有异常断开连接一般用connection.close()就可,
解决方案五:
以前写的一个帮助类,楼主可以看看增删改查的usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Data;usingSystem.Data.SqlClient;namespaceMyCinemalDal{classDBHelper{stringstrConn="uid=账号;pwd=密码;database=数据库;server=服务器";//SQLServer链接字符串SqlConnectionConnSql=newSqlConnection(strConn);//Sql链接类的实例化ConnSql.Open();//打开数据库stringstrSQL="SELECT*FROM表名1";//要执行的SQL语句SqlDataAdapterda=newSqlDataAdapter(strSQL,ConnSql);//创建DataAdapter数据适配器实例DataSetds=newDataSet();//创建DataSet实例da.Fill(ds,"自定义虚拟表名");//使用DataAdapter的Fill方法(填充),调用SELECT命令ConnSql.Close();//关闭数据库//定义连接字符串privatestaticstringConnString="DataSource=(登录数据库的名字默认是.);InitialCatalog=MyForum(数据库名字);IntegratedSecurity=True";//参数形式额sql语句stringsql="select*fromUserwherename=@name";//SqlParameter[]paras=newSqlParameter{newSqlParameter("@name",value)};//执行增删改publicstaticintExecCommand(stringsql,SqlParameter[]paras){//高效using语句using(SqlConnectioncon=newSqlConnection(ConnString)){SqlCommandcmd=newSqlCommand();//追加参数AppendParams(con,cmd,paras,sql);intcount=cmd.ExecuteNonQuery();returncount;}}//追加参数的通用方法publicstaticvoidAppendParams(SqlConnectioncon,SqlCommandcmd,SqlParameter[]paras,stringsql){cmd.Connection=con;cmd.CommandText=sql;if(paras!=null){foreach(SqlParameterpinparas){cmd.Parameters.Add(p);}}}//执行查询publicstaticSqlDataReaderExecSelect(stringsql,SqlParameter[]paras){SqlConnectioncon=newSqlConnection(ConnString);SqlCommandcmd=newSqlCommand();//追加参数AppendParams(con,cmd,paras,sql);SqlDataReadersr=cmd.ExecuteReader(CommandBehavior.CloseConnection);returnsr;}}}//调用读取using(SqlDataReaderreader=DBHelper.ExecSelect()){while(reader.Read()){Moviemovie=newMovie();movie.Id=Convert.ToInt32(reader["Id"]);movie.MovieCode=(string)reader["MovieCode"];movie.Category=newCategoryManager().GetCategoryById((int)reader["categoryid"]);movie.Title=(string)reader["Title"];movie.Director=(string)reader["Director"];movie.DateReleased=(DateTime)reader["DateReleased"];list.Add(movie);}//必须先关闭DataReader对象才能取出输出参数的值reader.Close();}
解决方案六:
1:关闭后SQL的连接就不存在了2:我一般用close()3:没用过vs2013
解决方案七:
1.关闭窗口就释放了链接了,那也就谈不上操作主窗口了,你可以把login窗口隐藏;2.一般finally用的是dispose,正规点的是自己写个类,每次调用链接完都close;3.这个应该是你的登陆判断本来就有问题,你自己检查下;
解决方案八:
登录的话,在Program.cs里写比较合适staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newLogin());if(Login.LoginOK){Application.Run(newASKME_main());}elseApplication.Exit();}

解决方案九:
引用7楼huang369509940的回复:

登录的话,在Program.cs里写比较合适staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newLogin());if(Login.LoginOK){Application.Run(newASKME_main());}elseApplication.Exit();}

Login里有publicstaticboolLoginOK=false;然后SqlConnectionconnection=newSqlConnection(conStr);try{connection.Open();MessageBox.Show("Sql连接成功!","恭喜",MessageBoxButtons.OK,MessageBoxIcon.Information);LoginOK=true;this.Close();}

参考http://www.cnblogs.com/sayu115/archive/2007/09/29/910656.html
解决方案十:
直接用数据库处理类,在界面调用它的方法比较好

时间: 2024-07-28 18:45:15

关于数据库连接登录的相关文章

asp.net数据库连接时候报错

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Data.SqlClient;usingSystem.Data;usingSystem.Web.Configuration;publicpartialclass_Default:System.Web.UI.Pag

iis访问出现各种问题(Vs访问正常)的部分处理方法详细整理_实用技巧

今天有园友问我一个问题,问题的大致意思就是新建了一个项目,在vs中调试都可以正常,但是在iis访问就会出现各种问题.我个人认为这个问题都很容易解决,因为园友和我离的挺远,只能通过QQ视频来操作,但是我发现这种方式的沟通确实不太方便.索性把这些问题整理一下,这样更容易的可以处理方法说明清楚. 因为我目前的项目没有这个问题存在,所以我只能是新建一个简单的项目,然后在本地操作,尽量让这个问题出现,也因为我从来没有整理过这方面额问题,现在整理一下,然后再把我遇到的一些问题整理一下,说明一下如何解决这类问

数据库连接失败:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)

问题描述 <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-t

数据库连接(无错)

数据|数据库|数据库连接|数据库连接 ASP连接SQL Server2000数据库例程 -------------------------------------------------------------------------------- <% Dim mode mode=request.form("text4")if mode=1 thenname=request.form("text1")age=request.form("text2&

基于JSP技术的数据库连接

js|数据|数据库|数据库连接     相对于基于传统的Client/Server模式的数据库系统,Web数据库系统采用三层浏览器/服务器结构(即网络浏览器/Web服务器/数据库服务器结构),具有极大的优势.Web数据库系统充分发挥了DBMS高效的数据存储与管理能力,以B/S模式为平台,将客户端统一为Web浏览器,为用户提供使用简便.内容丰富的数据库服务,已经成为Internet和Intranet提供的核心服务,为Internet上的电子商务提供技术支持.Web数据库系统的关键技术是Web与数据

SQL Server 2000数据库连接

server|数据|数据库|数据库连接 SQL Server 2000数据库连接   目录   1         SQL Server 2000服务和实例... 1 2         SQL Server 2000数据库应用结构... 2 3         SQL Server 2000安全管理... 2 3.1       服务组件的启动帐户.... 2 3.2       客户端连接用户管理... 2 4         SQL Server 2000数据库连接常见故障及处理方法...

用户 &amp;#39;sa&amp;#39; 登录失败。原因: 未与信任 SQL Server 连接 的解决方法

用户 'sa' 登录失败.原因: 未与信任 SQL Server 连接 的解决方法如下: 一.控制面板->服务->MS SQL SERVER->登陆-->本地系统帐户-->重新启动MS SQL SERVER用windows验证登陆查询分析器-->执行 sp_password null,sa新密码,'sa' 二."无法连接到服务器,用户xxx登陆失败"该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方

利用SQL注入漏洞登录后台

题记:工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意.读这篇文章,我假设读者有过写SQL语句的经历,或者能看得懂SQL语句 早在02年,国外关于SQL注入漏洞的技术文章已经很多,而国内在05年左右才开始的. 如今,谈SQL注入漏洞是否已是明日黄花,国内大大小小的网站都已经补上漏洞.但,百密必有一疏,入侵是偶然的,但安全绝对不是必然的. 前些天,网上传得沸沸扬扬的"拖库"事件给我们敲响了安全警钟. 在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的

ASP.NET 2..0站点登录、导航与权限管理

asp.net|导航|站点 asp.net 2.0中,新增了许多新的功能和控件.其中,新增的登陆控件可谓使得WEB应用的设计更加得心应手.什么是登陆控件呢?就是我们平常在WEB应用中经常要用到的用户注册,登陆,忘记密码,登陆后根据权限的不同而显示不同的页面等功能,现在在asp.net 2.0中都已经可以由提供的控件来实现了. asp.net 2.0中,为了更方便创建和管理用户,以及对 Web 应用程序中的页进行密码保护,引进了新的框架membership.新的框架包含用于处理身份验证和授权的新增