我正在制作C#Winform,并且我正在从xml读取一些数据以及与用户交互。然后我需要将这些数据放入本地数据库,然后通过子表单读取它。C#,Winform,将数据插入本地数据库并在DataGridVIew中查看
我声明,并读取数据:
public int score = 0; //not null after user interaction
public string candidate = null; //not null after user interaction
XElement Title = Test.Root.Element("title");
XElement MaxScore = Test.Root.Element("property_maxscore");
XElement PassScore = Test.Root.Element("property_passscore");
(直到这里所有的作品我只是张贴了更好的代码comprehence)
现在,我尝试了一些数据插入到本地数据库表,我用两种方法可悲的是他们都没有工作对我来说:
第一:
SqlCeConnection con = new SqlCeConnection(@"Data Source=...users.sdf");
con.Open();
SqlCeCommand cmd = new SqlCeCommand(@"INSERT INTO final_tests (test_name, candidate, score, pass_score, max_score, completed) VALUES (@test_name, @candidate, @score, @pass_score, @max_score, @completed)", con);
cmd.Parameters.AddWithValue("test_name", (string) Title);
cmd.Parameters.AddWithValue("candidate", candidate);
cmd.Parameters.AddWithValue("score", score);
cmd.Parameters.AddWithValue("pass_score", (string) PassScore);
cmd.Parameters.AddWithValue("max_score", (string) MaxScore);
cmd.Parameters.AddWithValue("completed", DateTime.Now);
cmd.ExecuteNonQuery();
con.Close();
二:
SqlCeConnection con = new SqlCeConnection(@"Data Source=...users.sdf");
con.Open();
using (SqlCeCommand comm = new SqlCeCommand("SELECT * FROM final_tests WHERE score LIKE @score", con))
{
comm.Parameters.Add(new SqlCeParameter("score", score));
comm.ExecuteNonQuery();
}
我测试的每一条线路,他们成功地执行,但是当我手动打开数据库是空的,当然在其他子形式在DataGridView是空的了。
我已经尝试了许多修改,但不幸的是,没有工作。我找不到我的错误在哪里。如果需要更多信息,我在这里。 要完成我的问题: 读取xml和用户交互的数据,然后必须将其放入提及的本地数据库中,保存以备后用,并在其他子表单中显示在DataGridView中。谢谢你们 !
检查cmd.ExecuteNonQuery()返回的内容。它应该返回受影响行的数量(https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery%28v=vs.110%29.aspx) – vidriduch
你究竟期待什么第二个查询要*做*?这是一个'SELECT',但你从不对结果做任何事情。 – David