记录插入成功但数据库未更新 C# 和 SQL Server Compact 数据库
Posted
技术标签:
【中文标题】记录插入成功但数据库未更新 C# 和 SQL Server Compact 数据库【英文标题】:Record inserted successfully but database not updated C# and SQL Server Compact Database 【发布时间】:2014-03-01 08:48:22 【问题描述】:private void button1_Click(object sender, EventArgs e)
string usernames = textBox1.Text;
string passwords = textBox2.Text;
string emailid = textBox5.Text;
string telno = textBox6.Text;
string connectionstring = "Data Source=|DataDirectory|\\libdb.sdf; Persist Security Info=False ;";
using (SqlCeConnection con = new SqlCeConnection(connectionstring))
con.Open();
using (SqlCeCommand Query = new SqlCeCommand("INSERT INTO Registers " + "(usernames,passwords,emailid,telno) " + "VALUES (@usernames,@passwords,@emailid,@telno)", con))
Query.Parameters.AddWithValue("@usernames", usernames);
Query.Parameters.AddWithValue("@passwords", passwords);
Query.Parameters.AddWithValue("@emailid", emailid);
Query.Parameters.AddWithValue("@telno", telno);
Query.ExecuteNonQuery();
MessageBox.Show("QueryExecuted");
con.Close();
MessageBox.Show("Closedconnecrion");
con.Dispose();
MessageBox.Show("disposed");
this.Close();
/*string conString = "Data Source=" +
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"MyAppData\\database.sdf") + ";Password=yourPassword;";
even this method dosent works */
在执行此代码时,我发现它执行成功。但是当我去检查数据库时,我发现条目是空的......
我什至尝试过刷新数据库..
-
我没有发现连接问题。
查询没有错误执行成功。
问题是我没有找到结果或我在数据库中输入的数据。
请使用代码进行描述,例如并邮寄至 Scarlet.gabriel@gmail.com
【问题讨论】:
你的数据库中telno
的类型是什么?
在您的 bin/debug 文件夹中查找数据库副本
【参考方案1】:
首先测试你与数据库的连接,你可以通过创建udl文件来获取连接字符串。
-
创建一个文本文件并使用扩展名 udl 将其 savaas(例如 connection.udl)。
双击并运行此文件。
将打开一个窗口,您可以在其中获取获取连接字符串的选项。
测试连接后,关闭此窗口并使用记事本打开此文件。
复制连接字符串并将其粘贴到以下语句中。
string connectionstring =" paste here";
【讨论】:
【参考方案2】:您如何确定连接是否已打开并已完成工作?如果发生任何错误,请使用 try...catch 块捕获:
using (SqlCeConnection con = new SqlCeConnection(connectionstring))
trycon.Open();
catch(Exception ex)
// database connection error. log/display ex. > return.
if(con.State==ConnectionState.Open)
using (SqlCeCommand Query = new SqlCeCommand("INSERT INTO Registers " + "(usernames,passwords,emailid,telno) " + "VALUES (@usernames,@passwords,@emailid,@telno)", con))
Query.Parameters.AddWithValue("@usernames", usernames);
Query.Parameters.AddWithValue("@passwords", passwords);
Query.Parameters.AddWithValue("@emailid", emailid);
Query.Parameters.AddWithValue("@telno", telno);
try
Query.ExecuteNonQuery();
catch(Exception ex)
// database communication error. log/display ex
MessageBox.Show("QueryExecuted");
if(con.State==ConnectionState.Open)
trycon.Close();
catch
【讨论】:
【参考方案3】:而不是使用 connectionstring = "Data Source=|DataDirectory|\libdb.sdf; Persist Security Info=False ;";请尝试使用绝对路径,例如 connectionstring = "数据源=C:\Users\chandra\Documents\Visual Studio 2010\Projects\Window\LMS\AppData\LMSDatabase.sdf;Persist Security Info=False;"; 我希望这会奏效。
谢谢
【讨论】:
以上是关于记录插入成功但数据库未更新 C# 和 SQL Server Compact 数据库的主要内容,如果未能解决你的问题,请参考以下文章
将数据插入数据库的PHP脚本在执行时返回成功但记录未插入数据库?
Windows 7 update 補丁查更新历史记录成功,但查看已安装的更新未发现补丁