这个是一个登陆SQL Server的登陆按钮,登陆是没问题的,我现在想加两个东西很简单,请高手指点
第一:如果数据的用户名和密码是错误的,进行一下判断,提示用户密码错误,不知道那个else放在哪合适
第二:登陆完后显示主界面,我不想让登陆界面隐藏,能不能直接关闭掉 /************************************/
/*登录按钮--填写名称和密码正确则登录*/
/************************************/
private void btnDL_Click(object sender, EventArgs e)
{
//*判断用户名输入是否为空,为空则弹出提示
if (this.txtSqlName.Text == "")
{
MessageBox.Show("用户名不能为空!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
//*判断密码输入是否为空,为空则弹出提示
if (txtSqlPwd.Text == "")
{
MessageBox.Show("密码不能为空!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
try
{
SqlConnection conn = new SqlConnection("Server=" + ccbSqlServerName.Text.Trim() + ";DataBase=master;uid=" + txtSqlName.Text.Trim() + ";pwd=" + txtSqlPwd.Text.Trim());
conn.Open();
if (conn.State == ConnectionState.Open)
{
strUser = txtSqlName.Text.Trim(); //获取到的用户名赋给strUser字符串
strPwd = txtSqlPwd.Text.Trim(); //获取到的密码赋给strPwd字符串
strServerName = ccbSqlServerName.Text.Trim(); //获取到的服务器名称赋给strServerName字符串
conn.Close();
m_oConn = conn;
frmMain main = new frmMain();
main.Show();
//this.DialogResult = DialogResult.OK; //this.Hide();
main.strservername = strServerName;
main.struser = strUser;
main.strpwd = strPwd;
}
else if (conn.State == ConnectionState.Closed)
{
conn.Close();
}
}
catch
{
btnDL_Click(sender, e);
}
}
第一:如果数据的用户名和密码是错误的,进行一下判断,提示用户密码错误,不知道那个else放在哪合适
第二:登陆完后显示主界面,我不想让登陆界面隐藏,能不能直接关闭掉 /************************************/
/*登录按钮--填写名称和密码正确则登录*/
/************************************/
private void btnDL_Click(object sender, EventArgs e)
{
//*判断用户名输入是否为空,为空则弹出提示
if (this.txtSqlName.Text == "")
{
MessageBox.Show("用户名不能为空!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
//*判断密码输入是否为空,为空则弹出提示
if (txtSqlPwd.Text == "")
{
MessageBox.Show("密码不能为空!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
try
{
SqlConnection conn = new SqlConnection("Server=" + ccbSqlServerName.Text.Trim() + ";DataBase=master;uid=" + txtSqlName.Text.Trim() + ";pwd=" + txtSqlPwd.Text.Trim());
conn.Open();
if (conn.State == ConnectionState.Open)
{
strUser = txtSqlName.Text.Trim(); //获取到的用户名赋给strUser字符串
strPwd = txtSqlPwd.Text.Trim(); //获取到的密码赋给strPwd字符串
strServerName = ccbSqlServerName.Text.Trim(); //获取到的服务器名称赋给strServerName字符串
conn.Close();
m_oConn = conn;
frmMain main = new frmMain();
main.Show();
//this.DialogResult = DialogResult.OK; //this.Hide();
main.strservername = strServerName;
main.struser = strUser;
main.strpwd = strPwd;
}
else if (conn.State == ConnectionState.Closed)
{
conn.Close();
}
}
catch
{
btnDL_Click(sender, e);
}
}
解决方案 »
- 如何获取新的打印任务??
- C#下引入命名空间会不会影响程序效能
- 菜鸟问题:如何在C# winform 中对textbox 实现只读,并且不使其变灰(enable=false)?
- c#引用 SQLDMO.DLL 遇到强命名的问题
- 内存流MemoryStream是干什么用的,给个简单点的例子好吗?
- 帮我用C#写一个程序?
- 关于C#中的POST.求大神给说下
- 编辑后生成的.pbd是什么文件,有什么用,我发布时要把它加载吗
- 如何让C#程序只运行一次啊?
- 小妹想问我的数据库记取为什么有错误! 急!!!!!1
- dataSet的Tables中,如何查选到满足条件的行,并获得行号?
- C#中文件读取中 如何判断是英文还是 中文
catch里加上
{
MessageBox.Show("账号密码错误或当前服务器不可用!");
btnDL_Click(sender, e);
}这样子可以吗?
{
conn.Open();
SqlCommmand cmd=new SqlCommand("",conn);
SqlDataReader dr=cmd.Executereader();
if(dr.Read())
{//判断
}
}
写在Catch里是可以。。可是就变成无限循环了。。点击确定没完没了了。
我在你说的那个里面修改了,可是要循环出来两次,才可以登陆。。
frmDL dl = new frmDL();
Application.Run(dl);
if (dl.DialogResult == DialogResult.OK)
{
Application.Run(new frmMain());
}
{}else
{
}
这样写sql语句,首先判断查询的记录是否为空,如果为空那么用户名就不存在,如果不为空密码错误那么就提示密码错误.
object objName=DBHelper.GetExecuteScalar(sql)
if(objName==null)
{
message.show("用户名不存在");
}else
{
if(!objName.tostring().equals(this.txtUserPwd))
{
message.show("密码错误");
}else
{
message.show("登录成功,跳转到主页");
}
}
关于第二个问题:暂时没想到...
frmDL dl = new frmDL();
dl.Show();if (dl.DialogResult == DialogResult.OK)
{
dl.Dispose();
Application.Run(new frmMain());
}
即可