【发布时间】:2014-03-20 12:33:23
【问题描述】:
我正在开发一个保存密码的程序。
我想将它们写入本地数据库文件(名称:Database.sdf)。
这是我的 SQL 查询:
SqlCeConnection conn = new SqlCeConnection();
conn.ConnectionString = "Data Source = Database1.sdf";
conn.Open();
SqlCeCommand cmd = new SqlCeCommand("INSERT INTO Passwords (Nr, Username, Password, Email, Website, Description, Rating, DateTime) VALUES ('" + UsernameBox.Text + "', " + PasswordBox.Text + "', '" + EmailBox.Text + "', '" + WebsiteBox.Text + "', '" + DescriptionBox.Text + "'," + RatingValue.Value + "," + DateTime.Now + ")", conn);
conn.Close();
但不知何故,它不起作用。 这是我的数据库设置: http://imgur.com/0JxX79y
我想要 Nr 自动增量 1,(我已在数据库中设置)。 我希望有人可以帮助我。 我已经尝试了很多我在 google 上找到的东西,但似乎没有任何效果。
问候, 拉杰科
【问题讨论】:
-
1) 您使用的是哪个数据库? 2) 使用parameterized queries。这种字符串连接对 SQL 注入 攻击是开放的。 3) 你没有用
ExecuteNonQuery执行你的命令。 4) 不要将密码存储为纯文本。 -
您的查询应该是 SqlCeCommand cmd = new SqlCeCommand("INSERT INTO Passwords (Username, Password, Email, Website, Description, Rating, DateTime) VALUES ('" + UsernameBox.Text + "', " + PasswordBox.Text + "', '" + EmailBox.Text + "', '" + WebsiteBox.Text + "', '" + DescriptionBox.Text + "'," + RatingValue.Value + "," + DateTime。现在 + ")", conn);
-
添加到Soner:1.使用实体框架,2.不要存储纯文本密码!
-
我正在使用本地数据库(我在“添加新项目 --> 本地数据库”中添加了该数据库)。 2,当然让我们这样做,3我应该如何执行它?