C# - 在本地数据库中写入数据

时间:2014-03-20 12:33:24

标签: c# database local

我正致力于保存密码的程序。

我想将它们写在本地数据库文件中(Name: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,(我在数据库中设置了它)。 我希望有人可以帮助我。 我尝试过在谷歌上发现的很多东西,但似乎没什么用。

格尔茨, Rajco

1 个答案:

答案 0 :(得分:2)

你从未执行过命令。

cmd.ExecuteNonQuery()
在conn.Close()之前

你应该看看upp参数以避免sql-injection

http://www.dotnetperls.com/sqlparameter

        SqlCeCommand cmd = new SqlCeCommand(@"
            INSERT INTO Passwords 
                (Username, Password, Email, Website, Description, Rating, DateTime) 
            VALUES 
                (@UserName, @Password, @Email, @WebSite, @Description, @RatingValue, @DateNow)", conn);
        cmd.Parameters.AddWithValue("UserName", UsernameBox.Text);
        cmd.Parameters.AddWithValue("Password", PasswordBox.Text);
        cmd.Parameters.AddWithValue("Email", EmailBox.Text);
        cmd.Parameters.AddWithValue("WebSite", WebsiteBox.Text);
        cmd.Parameters.AddWithValue("Description", DescriptionBox.Text);
        cmd.Parameters.AddWithValue("RatingValue", RatingValue.Value);
        cmd.Parameters.AddwithValue("DateNow", DateTime.Now);

尝试使用它。它会将您的数据添加为查询的参数。