我的数据只存储在Debug数据库中

时间:2015-02-11 13:54:07

标签: c# sql-server visual-studio-2013

我有一个visual studio Windows窗体项目。 我有一个窗口让用户输入文档信息,如

enter image description here 在用户完成之后..我将这些信息存储在数据库的文档表中

connectingString = ConfigurationManager.ConnectionStrings["AccountingPro.Properties.Settings.DAccConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(connectingString);
con.Open();
String query = "INSERT INTO dbo.document (docnum, basicdate, userdate, doctype, amount, AccountNumber, accountname, discounttype, discountpercentage, amountafterdiscount, comments, posted) VALUES(@id, @BD, @UD, @DT, @Am, @anum, @aname, @disT, @disP, @aad, @notes, @de)";
command = new SqlCommand(query, con);
command.Parameters.Add("@id", this.ID);
command.Parameters.Add("@BD", this.Basic_Date);
command.Parameters.Add("@UD", this.User_Date);
command.Parameters.Add("@DT", this.Type_of_Doc);
command.Parameters.Add("@Am", this.Amount);
command.Parameters.Add("@anum", this.account_num);
command.Parameters.Add("@aname", this.account_name);
command.Parameters.Add("@disT", '0');
command.Parameters.Add("@disP", '0');
command.Parameters.Add("@aad", '0');
command.Parameters.Add("@notes", this.Notes);
 if(this.departure == false)
    command.Parameters.Add("@de", '0');
 else
    command.Parameters.Add("@de", '1');

 da = new SqlDataAdapter(command);
 dt = new DataTable();
 da.Fill(dt);
 da.Update(dt);

 con.Close();

这些信息在运行时存储在数据库中的问题。 当我开始新的执行时,我找不到像表格那样的先前信息

你帮我吗? 感谢

3 个答案:

答案 0 :(得分:1)

由于您要将数据插入数据库而不是检索,因此请勿使用SqlDataAdapter使用ExecuteNonQuery命令:

...
command.ExecuteNonQuery();

答案 1 :(得分:1)

我猜你是否正在使用本地.MDB文件来存储您的数据,并且在您构建项目时文件会被覆盖。

复制到输出目录属性更改为不复制以防止文件被覆盖。然后,您可以更改连接字符串以指向项目目录中的文件,也可以手动复制到" bin"适当的文件夹。

有关MSDN的更多提示:

注意:我也会更改为使用ExecuteNonQuery,而不是使用SqlDataAdapter

答案 2 :(得分:0)

如果要在数据库中插入数据,则必须使用命令对象的ExecuteNonQuery方法。处理任何IDisposable对象(如连接和命令对象)也是一件好事。

         string connectingString = ConfigurationManager.ConnectionStrings["AccountingPro.Properties.Settings.DAccConnectionString"].ConnectionString;
        using (SqlConnection con = new SqlConnection(connectingString))
        {
            con.Open();
            String query = "INSERT INTO dbo.document (docnum, basicdate, userdate, doctype, amount, AccountNumber, accountname, discounttype, discountpercentage, amountafterdiscount, comments, posted) VALUES(@id, @BD, @UD, @DT, @Am, @anum, @aname, @disT, @disP, @aad, @notes, @de)";
            using (var command = con.CreateCommand()) {
                command.Parameters.Add("@id", this.ID);
                command.Parameters.Add("@BD", this.Basic_Date);
                command.Parameters.Add("@UD", this.User_Date);
                command.Parameters.Add("@DT", this.Type_of_Doc);
                command.Parameters.Add("@Am", this.Amount);
                command.Parameters.Add("@anum", this.account_num);
                command.Parameters.Add("@aname", this.account_name);
                command.Parameters.Add("@disT", '0');
                command.Parameters.Add("@disP", '0');
                command.Parameters.Add("@aad", '0');
                command.Parameters.Add("@notes", this.Notes);
                if (this.departure == false)
                    command.Parameters.Add("@de", '0');
                else
                    command.Parameters.Add("@de", '1');

                command.ExecuteNonQuery();
            }

            con.Close();
        }