我是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();
}
}
}
}
答案 0 :(得分:0)
尝试将其放入按钮子程序中:
User = UsernametextBox.Text; //
pass = PasswordtextBox.Text;
if (ValidateFunction(User,pass))
{new Dashboard().Show();}
else
{
new NewQuote().Show();
}
答案 1 :(得分:0)
数据库是否在远程主机上?您很可能必须将您的IP添加到数据库的白名单中,以便您可以连接。几周前我遇到了那个确切的问题,甚至可以访问表和列名,但没有记录。
如果是本地数据库,只需使用Windows身份验证。否则,在Windows运行控制台中尝试进行telnet连接测试,尝试ping服务器。