c#登录页面从数据库验证
本文关键字:数据库 验证 登录 | 更新日期: 2023-09-27 18:18:59
我是c#的新手,我正在尝试创建一个用户输入用户名和密码的登录页面。然后,从数据库中读取它,以验证user_name和密码是否在其中。我已经建立了连接,它似乎正在工作,因为在这段代码中,如果我输入列的标题,它将允许我登录,但不允许登录该列的任何值。我如何让它成为它接受的值?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace BrokerSolution
{
public partial class LogIn : Form
{
public static String User ;
public static String pass;
public LogIn()
{
InitializeComponent();
}
private bool ValidateFunction(string User, string pass)
{
bool boolReturnvalue = false;
String strConnection = "Server=****; Database=*****; User Id=******; password=*****";
SqlConnection UGIcon = new SqlConnection(strConnection);
String LogInQuery = "SELECT user_name, sign_in FROM Users";
SqlCommand loginCommand = new SqlCommand(LogInQuery, UGIcon);
SqlDataReader dr;
UGIcon.Open();
dr = loginCommand.ExecuteReader();
while (dr.Read())
{
if ((User == dr["user_name"].ToString()) & (pass == dr["sign_in"].ToString()))
{
boolReturnvalue = true;
}
dr.Close();
return boolReturnvalue;
}
return boolReturnvalue;
}
private void button1_Click(object sender, EventArgs e)
{
User = UsernametextBox.Text; //
pass = PasswordtextBox.Text;
SqlDataReader dr;
if (User.Equals(_40029562DataSet.users.user_nameColumn.ToString()))
{new Dashboard().Show();}
else
{
new NewQuote().Show();
}
}
}
}
试着把这个放到你的按钮子程序中:
User = UsernametextBox.Text; //
pass = PasswordtextBox.Text;
if (ValidateFunction(User,pass))
{new Dashboard().Show();}
else
{
new NewQuote().Show();
}
数据库是否在远程主机上?您很可能必须将您的ip添加到数据库的白名单中,才能进行连接。几个星期前我遇到了这个问题,甚至可以访问表和列名,但没有记录。
如果是本地数据库,只需使用Windows身份验证。否则,尝试在windows运行控制台中进行telnet连接测试以尝试ping服务器