求解答:c#Winform项目,关联sqlsever数据库,报了SqlException异常,显示User_info无效

第一次做这个关联数据库的,找不出是哪儿的问题,求大神帮忙看看~

异常如图:图片说明

代码如下:报错在:“sqlConnection.Open();//打开数据库连接”这句

 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=登录名;Password=密码";
            string myconn = "Data Source=DESKTOP-2RRTS95;Initial Catalog=User Management;User ID=sa;Password=123456";//数据库实例连接字符串 ;Integrated Security=True
            SqlConnection sqlConnection = new SqlConnection(myconn);//创建数据库连接类的对象,创建数据库连接类的实例
            sqlConnection.Open();//打开数据库连接

数据库自己建的表如下:图片说明

1个回答

找到了问题的所在,出错的地方不在上边所贴的代码中,而是在下面这句话中: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数据库如图:
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问