C# OLEDBEException:条件表达式中的数据类型不匹配该怎么办?

C# OLEDBEException:条件表达式中的数据类型不匹配该怎么办?,c#,oledb,C#,Oledb,System.Data.OleDb.OLEDBEException:条件表达式中的数据类型不匹配。 围绕这条线: public string checkUsername(string username, string password) { string result = "invalid username/password"; string connectionString = "Provider

System.Data.OleDb.OLEDBEException:条件表达式中的数据类型不匹配。 围绕这条线:

public string checkUsername(string username, string password)
        {
            string result = "invalid username/password";
            string connectionString = 
                "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~\\myDB\\database.mdb");
            string queryString = "SELECT * FROM Table WHERE [username]='" + username + "' AND [password]='" + password + "';";

            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {

                connection.Open();
                OleDbCommand command = connection.CreateCommand();
                command.CommandText = queryString;

                OleDbDataReader reader = command.ExecuteReader();
                try
                {
                    while (reader.Read())
                    {
                        result = "";
                    }
                }
                finally
                {
                    reader.Close();
                    connection.Close();
                }
            }
            return result;
        }
想要尝试:

OleDbDataReader reader = command.ExecuteReader();
                try
                {
                    while (reader.Read())
但“txtBoxPassword”在当前上下文中并不存在


刚刚学了几个月的c#,但仍然需要指导。

按照SQL语句的方式,您对SQL注入非常开放。它应该参数化,因为您可以选择拍摄。。。把这当作你的陈述

cmd.Parameters.AddWithValue("@password", txtBoxPassword.Text);
然后,添加您想要的参数,但出于理智的目的,您可能也应该清理它们。这里,username、password的入站参数不是查询的列名。您正在将这些值设置到参数对象中

SELECT * FROM Table WHERE [username]=@parmUserName AND [password]=@parmPassword
cmd.Parameters.AddWithValue ( "@parmUserName", username);
cmd.Parameters.AddWithValue ( "@parmPassword", password);