我正在尝试将3个变量(用户名,电子邮件,密码)的值写入SQLite数据库。我可以将文本写入数据库但不是变量。我该怎么做?
我的代码:
SQCommand.CommandText = "INSERT INTO login_data (username, password, email) VALUES (Username, Password, Email)"
答案 0 :(得分:2)
糟糕的方法:使用String.Format()方法将字符串与您的值连接。
更好的方法:使用参数化查询。检查链接:http://www.4guysfromrolla.com/webtech/092601-1.shtml
答案 1 :(得分:1)
我会后退一步,再看看你的应用程序架构。在大多数情况下,在访问数据库时使用对象关系映射器(ORM)工具是有意义的。如果你想对你所描述的简单域模型使用SQLite(这是一个很棒的小数据库),我建议你看一下Subsonic's SimpleRepository data access system。它应该简化您的问题。
答案 2 :(得分:-2)
我不是VB人,所以我猜这里......
SQCommand.CommandText = "INSERT INTO login_data (username, password, email) VALUES (" + Username + "," + Password + "," + Email + ")"
有更好的方法可以做到这一点,但是为了快速和肮脏,这应该完成工作。
编辑:---- 由于所有的驱动器都说这是不好的做法,我想我应该在这里添加一个警告。
IFF这些变量的内容由用户提供,并且它们尚未以某种方式进行Escaped或验证。它们可能包含SQL命令,因此此时的简单连接可能会使您的数据库暴露给SQL Injection attack。
我还应该向所有程序员倾斜,他们只能通过查看一行代码来了解并且知道没有关于程序的其他内容这简单的连接显然是错误的做法这里。您对代码的理解显然是神奇的。