从数据库中的c#中删除

如何解决从数据库中的c#中删除

| 我正在使用VS10 Express在C#WPF中编写应用程序。 我不得不说我是C#和VS的初学者,但是我在Google上搜索了很多示例,我真的想自己解决这个问题。 我有一个本地数据库(mydatabase.sdf),在加载窗口时,我用一些数据填充了该数据库的表。该表的字段之一需要一个唯一的值,因此我想在每次加载时都放入相同的数据,但是我得到的是错误,而不是偏离正常值。 我想在重新填充之前从数据库删除所有数据,这似乎很简单,但我无法正常工作... 我试过了
dataset.Tables[\"mytable\"].Clear()
那是行不通的,似乎只是从datagrid(dataTable)中删除数据,而不是从数据存储中删除。 我也尝试过:
for (int i = 0; i < dataset.Tables[\"mytable\"].Rows.Count; i++)
{
  dataset.Tables[\"mytable\"].Rows[i].Delete();
}
  this.TableAdapter.Update(this.dataset);
但是在启动时,“ 2”语句在启动时返回零,但是如果我输入数据,则会得到“唯一值错误”。 删除它的唯一方法是从数据网格中手动将其删除,然后按下“更新”按钮,这实际上会将其从数据存储中删除。 由于开发原因,无法选择使数据库中的该字段不唯一。 如何在程序加载时从数据存储/数据库(mydatabase.sdf)中删除真正的数据? 编辑 这是我如何用数据填充数据库代码
public void FillInternet()
    {
        klantenTableAdapter1.ClearBeforeFill = false;


        string MyConString =    \"SERVER=myserver;\" +
                                \"DATABASE=mydb;\" +
                                \"UID=myuid;\" +
                                \"PASSWORD=mypass;\";

        MysqLConnection connection = new MysqLConnection(MyConString);
        MysqLCommand command = connection.CreateCommand();
        MysqLDataReader Reader;
        command.CommandText = \"SELECT klantnr,voorletters,roepnaam,achternaam,tussenvoegsel,meisjesnaam,straat,huisnr,subhuisnr,postcode,plaats,telthuis,telmobiel,telwerk,fax,email,geboortedatum FROM klanten ORDER BY klantnr\";
        connection.open();
        Reader = command.ExecuteReader();


        try
        {
            while (Reader.Read())
            {
                DaTarow newLogRow = dataset1.Tables[\"klanten\"].NewRow();
                var thisrow = \"\";

                for (int i = 0; i < Reader.FieldCount; i++)
                {
                    thisrow = Reader.GetValue(i).ToString();
                    newLogRow[Reader.GetName(i)] = thisrow;
                }

                dataset1.Tables[\"klanten\"].Rows.Add(newLogRow);
                this.klantenTableAdapter1.Update(this.dataset1);
            }
            connection.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(\"Error: \" + ex.Message,\"Fout\",MessageBoxButton.OK,MessageBoxImage.Error);
        }

        dataset1.AcceptChanges();

        //Fill from internet
        //da.Fill(dataset1.klanten);

        //Fill from local database
        klantenTableAdapter1.Fill(dataset1.klanten);

        this.klantenTableAdapter1.Update(this.dataset1);

        this.DataContext = dataset1.klanten.defaultview;
}
    

解决方法

        ADO.NET使用“断开连接”记录集模型。它在客户端结构(DataSet和DataTable)中保留数据的副本。需要将对客户端结构的更新/插入/删除推回数据库。您需要阅读ADO.NET才能对这个过程有一个基本的了解,并可以了解ADO.NET事件模型,如果您想做任何涉及典型的现实世界复杂性的事情,这将是必需的。关于ADO.NET的书籍很多,因为它是功能丰富的中间层数据层,具有很大的复杂性。 为了您的目的,您可以阅读ADO.NET Command对象和SQL \“ delete \”命令。您还需要研究ADO.NET如何处理自动递增的主键,这是断开连接模型中最棘手的方面之一。 如果数据库本身定义了自动增量键,则除非在后端临时关闭自动增量,否则在插入新行时不能提供该值。这不是ADO.NET问题,顺便说一句。那是100%的后端。     ,        从您的其他文章中,我假设您的数据库也是MySQL。您提到了一个唯一列,通常表示自动递增列。如果您在构建完条目后(例如从1-10开始)“删除”这些条目,然后尝试将下一个周期重新添加为相同的1-10项,它会给您以下信息而窒息。如果您从上次使用的表开始向表中添加数字,请查看是否有帮助。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?