记录插入成功但数据库未更新 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脚本在执行时返回成功但记录未插入数据库?

C# 数据库未更新使用数据集

Windows 7 update 補丁查更新历史记录成功,但查看已安装的更新未发现补丁

C#中对SQl数据库进行插入操作,有返回受影响的行数,执行结果是“添加成功”但是在数据困中却没有数据

SQL 插入 - 删除表

C# Datagridview 行未通过插入数据库更新