找到了问题的所在,出错的地方不在上边所贴的代码中,而是在下面这句话中:from后边应该是自己的表名,而报异常中的表名字来自于User_info
这个是参考的其他人代码中的表名。
String sql = "select UserName,Password from 表名字 where UserName='"+username+"'and Password='"+password+"'";//SQL语句:实现表数据的读取//此处username=textBoxUser.Text( );password=textBoxPassage.Text( );//textBoxUser.Text( )和textBoxPassage.Text( )分别读取 的是两个TextBox文本框,textBoxUser.Text( )是用户名后的文本框,textBoxPassage.Text( )是密码后边的文本框。
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 StBC
{
public partial class LoginForm : Form
{
public LoginForm()
{
InitializeComponent();
}
//
//登录按钮代码
//
//连接SQL Sever数据库需要用到的类:SqlConnection数据库连接类;SqlCommand数据库操作类;SqlDataReader数据库读取
private void Loginbutton1_Click(object sender, EventArgs e)//登录按钮点击事件
{
string username, password;//用来获取用户名和密码的变量
username = textBoxUser.Text;//textBoxUser是用户名后的文本框
password = textBoxPassword.Text;//textBoxPassword是密码后的文本框
/*string myconn = "Data Source=服务器名称;Initial Catalog=数据库名称;User ID=登录名(默认登录名是sa);Password=密码(密码是自己设置的)";*/
string myconn = "Data Source=DESKTOP-2RRTS95;Initial Catalog=Up;User ID=sa;Password=12345";//数据库实例连接字符串 ;Integrated Security=True
SqlConnection sqlConnection = new SqlConnection(myconn);//创建数据库连接类的对象,创建数据库连接类的实例
sqlConnection.Open();//打开数据库连接(报异常在此处,改错却在下面这个SQL语句)
//密码需采用MDS加密算法,此代码中没有包含,后续添加。
String sql = "select UserName,Password from up(这里是关联的数据库中的表名) where UserName='"+username+"'and Password='"+password+"'";//SQL语句:实现表数据的读取
SqlCommand sqlCommand = new SqlCommand(sql,sqlConnection);//返回一个SqlConnection类型的对象
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();//用cmd函数执行语句,返回SqlDataReader对象sqlDataReader,sqlDataReader就是返回的结果集(也就是数据库中查询到的表数据)
if (textBoxUser.Text=="")
{
MessageBox.Show("请输入用户名!","提示");
textBoxUser.Focus();
}
else if (textBoxPassword.Text == "")
{
MessageBox.Show("请输入密码!", "提示");
}
else
{
if (sqlDataReader.HasRows)//满足用户名与密码一致,进入下一个界面,即进入这个应用软件
{
//实现页面跳转
MainForm form2 = new MainForm();
this.Hide();//隐藏当前窗体
form2.ShowDialog();
Application.ExitThread();//退出当前窗体,这一步很重要,否则最后可能无法将所有进程关闭。最好是在跳转页面后,将之前的页面退出
}
else //如果登陆失败,询问是否注册新用户
{
DialogResult dr = MessageBox.Show("是否注册新用户?","登陆失败",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if (dr == DialogResult.Yes) //打开注册界面
{
RegisterForm form2 = new RegisterForm();
this.Hide();//隐藏当前窗体
form2.ShowDialog();
Application.ExitThread();
}
else
{
textBoxUser.Text = "";
textBoxPassword.Text = "";
textBoxUser.Focus();
this.Show();
}
}
}
sqlConnection.Close();//用完后关闭连接,以免影响其他程序使用
}
登录页面Winform窗体名称是LoginForm如图:
过程中的问题及解决方法:要想让登录页面在软件工具那个页面的前边,可以在解决方案中的Program.cs中进行操作,具体如图:
数据库后来改为了Up,数据库中的表命名为up.sqlsever数据库如图: