【问题标题】:Database System.Data.SqlClient.SqlException数据库 System.Data.SqlClient.SqlException
【发布时间】:2017-03-16 14:07:23
【问题描述】:

我正在尝试使用数据库:

 SqlConnection sqlcon = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=D:\DB\LogiDB.mdf;Integrated Security=True;Connect Timeout=30");
            string query = "Select * from tbl_Login Where username = '" + textBox1.Text.Trim().ToLower() + "' and password = '" + textBox1.Text.Trim().ToLower() + "'";
            SqlDataAdapter sda = new SqlDataAdapter(query, sqlcon);
            DataTable dtbl = new DataTable();
            sda.Fill(dtbl);
            if (dtbl.Rows.Count == 1)
            {
               //
            }

我的文件是:

dbo.Table.sql
LogiDB.mdf
LogiDB_log.ldf   
tbl_Login.sql    

不确定我做错了什么,但是当我按下按钮时,我通过sda.Fill(dtbl); 行得到了这个:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: Invalid object name 'tbl_Login'.

【问题讨论】:

  • 不是这个问题的解决方案,但是请关注Bobby Tables
  • 1.你的Sqlconnection没有指向目标数据库,找到正确的sql连接字符串,连接字符串与你的数据库文件无关。您可以尝试在visual studio中找到一个(不是OLE DB连接,删除provider); 2.你在execute查询之前忘记open sql连接
  • 出于多种原因,不要将密码存储在数据库中。
  • @Hans 你好,不知道什么是为用户密码桌面应用程序创建服务器登录的好方法
  • @LONG 你好,它是自动取字符串,例如没有私有路径

标签: c# sql sql-server database winforms


【解决方案1】:

正如错误所说:Invalid object name 'tbl_Login'

这可能意味着:

  • tbl_Login 表在您的数据库中不存在
  • 您连接到错误的数据库

既然你有 tbl_Login.sql 脚本,我猜它包含表定义。因此,您需要运行脚本在 LogiDB 数据库中创建表。

Here there is example how to connect to local database

【讨论】:

    【解决方案2】:

    这是我的代码完美运行, 你可以试试这个并比较你的代码

    SqlConnection cn = new SqlConnection("Data Source=AVREST\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True");
                cn.Open();
                SqlCommand cmd = new SqlCommand("select loginID,loginPassword from logintavle where loginID='" + textBox1.Text + "'and loginPassword='" + textBox2.Text + "'", cn);
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                //sda.SelectCommand = cmd;
                DataTable dataset = new DataTable();
                sda.Fill(dataset);
                if (dataset.Rows.Count > 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      相关资源
      最近更新 更多