“dasani2”附近的 Sqlite 错误:语法错误

Posted

技术标签:

【中文标题】“dasani2”附近的 Sqlite 错误:语法错误【英文标题】:Sqlite error near "dasani2": syntax error 【发布时间】:2013-10-25 09:28:52 【问题描述】:

我正在使用数据库创建我的第一个应用程序,但出现错误: SQLite error near "dasani2": syntax error ,这是我的数据库结构和第一行:

id    name     lastname   username   password
1     first    second     dasani     dasani2

这是我的程序代码:

SQLiteConnection sqliteCon = new SQLiteConnection(dbConnectionString);
        try
        
            sqliteCon.Open();
            string Query = "select * from Users where username='" + Vartotojas.Text.Trim() + "'and password'" + Slaptazodis.Text.Trim() + "'";
            SQLiteCommand createCommand = new SQLiteCommand(Query, sqliteCon);

            createCommand.ExecuteNonQuery();
            SQLiteDataReader dr = createCommand.ExecuteReader();
        

【问题讨论】:

一些良好的数据库实践:使用Parameters - 避免使用SQL injection 并处理任意数据。 【参考方案1】:

您缺少 = 符号:

... "'and password = '" + Slaptazodis.Text.Trim() + "'";

附注:您不应该以纯文本形式存储密码。

【讨论】:

是的,我需要使用散列,但现在我只是在学习一切是如何工作的【参考方案2】:

您错过了密码列中的 = 符号

password='"...

它不是一个插入查询,它是一个选择查询,所以你不需要这个下面的行

        createCommand.ExecuteNonQuery();

【讨论】:

以上是关于“dasani2”附近的 Sqlite 错误:语法错误的主要内容,如果未能解决你的问题,请参考以下文章

org.sqlite.SQLiteException:[SQLITE_ERROR] SQL 错误或缺少数据库(“as”附近:语法错误)

android.database.sqlite.SQLiteException:在“Foreign”附近:语法错误(代码 1):

“COLUMN_NAME”附近:SQLite 中的语法错误(代码 1)

SQLITE_ERROR SQL 错误或缺少数据库(“(”附近:语法错误)嵌套选择顺序按

SQLITE_ERROR SQL错误或缺少数据库(“SCHEMA”附近:语法错误)

这个sqlite代码的语法有什么问题?