Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual studio 2013 OLEDBEException未处理_C#_Visual Studio 2012_Ms Access 2013 - Fatal编程技术网

C# Visual studio 2013 OLEDBEException未处理

C# Visual studio 2013 OLEDBEException未处理,c#,visual-studio-2012,ms-access-2013,C#,Visual Studio 2012,Ms Access 2013,这是我的问题,这就是我被困的地方 你能帮他。。。请容忍我,如果这一点看起来很明显 OLEDB连接con=新的OLEDB连接 con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Sparrow vivek\Documents\Billing.accdb"; con.Open(); String query = "sele

这是我的问题,这就是我被困的地方

你能帮他。。。请容忍我,如果这一点看起来很明显

OLEDB连接con=新的OLEDB连接

            con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Sparrow vivek\Documents\Billing.accdb";
            con.Open();
            String query = "select * from user where username='" + textBox1.Text + "'and password='" + textBox2.Text + "'";
            OleDbCommand cmd = new OleDbCommand(query, con);

            //cmd.ExecuteNonQuery();
            OleDbDataReader rd = cmd.ExecuteReader();
            int i = 0;
            String ss = null;
            while (rd.Read())
            {
                i++;
                ss = rd[0].ToString();
            }
            if (i > 0)
            {
                Form4 f4 = new Form4();
                this.Hide();
                f4.Show();
                con.Close();
            }
            else
            {
                label4.Text = "Username or Password not valid";
                label4.ForeColor = Color.Red;
            }
            con.Close();

首先,您对SQL注入非常开放。永远不要为查询连接字符串。。。参数化它们

String query = "select * from user where username = ? and password = ?";
OleDbCommand cmd = new OleDbCommand(query, con);
cmd.Parameters.Add( "parmUser", textBox1.Text )
cmd.Parameters.Add( "parmPassword", textBox2.Text )
那个?是查询中参数的占位符,在执行命令之前,应在实际生成命令后按相同顺序添加这些参数

SQL Server和其他引擎允许您命名参数,但出于习惯,您可能仍然应该将它们保持在与准备的查询相同的顺序中

String query = "select * from user where username = @parmUser and password = @parmPassword";
OleDbCommand cmd = new OleDbCommand(query, con);
cmd.Parameters.Add( "parmUser", textBox1.Text )
cmd.Parameters.Add( "parmPassword", textBox2.Text )
但是,这也可能是因为name参数和and子句后面的结束引号后面没有空格

+ "'and....
to
+ "' and...

您的表名正确吗?检查字段名和表名。确保user是您的表名而不是数据库名。user是sql关键字…使用[user]替换或重命名您的tablewebber,在下面发布您的答案,以便我可以接受…谢谢,但webber2k6是正确的,所以奇怪,当我尝试使用MySQL时,似乎不存在同样的问题。。。