用VS2005做一个登录界面。有txtbox1,txtbox2,button.数据库dianzi.表名users.如下图。要连接数据库。

最好写出完整代码。可以让我直接复制进去就可以运行的那种。谢了。分可以追加。

建个DBHelper类用于数据库的连接:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace Load
{
class DBHelper
{
private static SqlCommand cmd = null;
private static SqlDataReader dr = null;

public int RowCount { get; private set; }

SqlConnection sqlCnn = new SqlConnection();
SqlCommand sqlCmd = new SqlCommand();

//数据库连接字符串
private static string connectionString = "Server = 127.0.0.1; Database = dianzi; Integrated Security =SSPI";
//数据库连接Connection对象
public static SqlConnection connection = new SqlConnection(connectionString);

public DBHelper()
{ }

#region 返回结果集

public static SqlDataReader GetResult(string sql)
{
try
{
cmd = new SqlCommand();
cmd.CommandText = sql;
cmd.Connection = connection;
cmd.Connection.Open();
dr = cmd.ExecuteReader();
return dr;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
finally
{
//dr.Close();
//cmd.Connection.Close();
}
}

#endregion

#region 对Select语句,返回int型结果集

public static int GetSqlResult(string sql)
{
try
{
cmd = new SqlCommand();
cmd.CommandText = sql;
cmd.Connection = connection;
cmd.Connection.Open();

int a = (int)cmd.ExecuteScalar();
return a;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return -1;

}
finally
{
cmd.Connection.Close();
}
}

#endregion

#region 对Update,Insert和Delete语句,返回该命令所影响的行数

public static int GetDsqlResult(string sql)
{
try
{
cmd = new SqlCommand();
cmd.CommandText = sql;
cmd.Connection = connection;
cmd.Connection.Open();

cmd.ExecuteNonQuery();
return 1;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return -1;
}
finally
{
cmd.Connection.Close();
}
}

#endregion

}
}
Load窗体中的函数:

1、 #region 验证用户的输入,成功返回true,失败返回false

private bool IsValidataInput()
{
if (txtbox1.Text.Trim() == "")
{
MessageBox.Show("请输入用户名!", "登陆提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtbox1.Focus();
return false;
}
else if (txtbox2.Text == "")
{
MessageBox.Show("请输入密码!", "登陆提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtbox2.Focus();
return false;
}
return true;
}
#endregion

2、 #region 验证用户是否合法

//传递用户账号、密码、登陆类型,合法返回true,不合法返回false
//message参数用来记录验证失败的原因
private bool IsValidataUser(string UserName, string UserrPwd, ref string message)
{
string sql = String.Format("select count(*) from User where UserName = '{0}' and UserPwd = '{1}'", UserName, UserPwd);

int a = DBHelper.GetSqlResult(sql);
if (a < 1)
{
message = "该用户名不存在或密码错误;并检查用户类型是否选择正确!";
return false;
}
else
{
return true;
}
}
#endregion

3、按钮事件
private void button_Click(object sender, EventArgs e)
{
//标识是否为合法用户
bool isValidUser = false;
string message = "登陆失败!";

if (IsValidataInput())
{
//验证用户是否为合法用户
isValidUser = IsValidataUser(txtbox1.Text.Trim(),txtbox2.Text, ref message);
if (isValidUser)
{
Manager ma = new Manager(); // Manager为你登陆后要显示的窗体
ma.Show();
this.Hide();
}
else
{
MessageBox.Show(message, "登陆提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答