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

C#-在本地数据库中写入数据,c#,database,local,C#,Database,Local,我正在处理一个程序来保存密码 我想将它们写入本地数据库文件(名称:database.sdf) 这是我的SQL查询: SqlCeConnection conn = new SqlCeConnection(); conn.ConnectionString = "Data Source = Database1.sdf"; conn.Open(); SqlCeCommand cmd = new SqlCeCommand("INSERT INTO Passwords (Nr, Username, Pass

我正在处理一个程序来保存密码

我想将它们写入本地数据库文件(名称: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();
但不知怎么的,它不起作用。 这是我的数据库设置:

我想要Nr自动增量1(我已经在数据库中设置了它)。 我希望有人能帮助我。 我尝试了很多在谷歌上找到的东西,但似乎都不管用

格里茨,
Rajco

您从未执行过该命令

cmd.ExecuteNonQuery()
在连接关闭之前()

您应该查看upp参数以避免sql注入


试着用这个代替。它将您的数据添加为查询的参数。

1)您使用的是哪个数据库?2) 使用。这种字符串连接对SQL注入攻击是开放的。3) 您没有使用
ExecuteNonQuery
执行命令。4) 不要将密码存储为纯文本。您的查询应为SqlCeCommand cmd=new SqlCeCommand(“插入密码(用户名、密码、电子邮件、网站、说明、评级、日期时间)”值(“+UsernameBox.text+”、“+PasswordBox.text+”、“+EmailBox.text+”、“+WebsiteBox.text+”、“+DescriptionBox.text+”、“,”+RatingValue.Value+”,“+DateTime.Now+”,康涅狄格州);要添加到Soner:1。使用实体框架,2。不要存储纯文本密码!Im使用本地数据库(我在“添加新项目-->本地数据库”中添加了该数据库)。第二,当然让我们这样做,第三,我应该如何执行它呢?当我有执行查询时,它不知何故不起作用。原因我正在使用try/catch。传递查询时出错。[Token line number=1,Token like offset=113,Token in error=,]查看我编辑的答案,将数据设置为参数。您可能缺少或添加了一些字符。我猜数据库中的Nr是表的ID?你没有设置它,因为它会自动设置。我需要为它添加什么参考?使用System.Data.SqlClient的原因;是不是。。
        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);