SQLIte SELECT语句在Visual C#中返回相同的值

巴苏

我正在从SQLite数据库中获取数据,并将列表插入ListView中。但是在我的ListView中重复了相同的数据。

这是获取数据的代码:

public List<Objectdata> getAllData()
    {
        m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
        m_dbConnection.Open();
        List<Objectdata> dataList = new List<Objectdata>();
        Objectdata oD = new Objectdata();

        string sql = "select DISTINCT * from data ORDER BY id DESC";
        SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
        SQLiteDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            oD.id = reader["id"].ToString();
            oD.name = reader["name"].ToString();
            oD.address = reader["address"].ToString();
            oD.mobile = reader["mobile"].ToString();
            oD.date = reader["date"].ToString();
            oD.price = reader["price"].ToString();
            oD.warranty = reader["warranty"].ToString();
            oD.month = reader["month"].ToString();

            dataList.Add(oD);

        }

        m_dbConnection.Close();


        return dataList;
    }

这是将数据添加到ListView的代码:

 private void button_refresh_Click(object sender, RoutedEventArgs e)
    {
        listView.Items.Clear();
        TableController a = new TableController();
        dataList = a.getAllData();

        listView.ItemsSource = dataList;


    }

这是xaml中的listview代码:

   <ListView x:Name="listView" HorizontalAlignment="Left" Height="400" Margin="10,76,0,0" VerticalAlignment="Top" Width="645" >
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Id" Width="20" DisplayMemberBinding="{Binding id}" />
                <GridViewColumn Header="Name" Width="90" DisplayMemberBinding="{Binding name}" />
                <GridViewColumn Header="Adrress" Width="130" DisplayMemberBinding="{Binding address}" />
                <GridViewColumn Header="Mobile" Width="100" DisplayMemberBinding="{Binding mobile}" />
                <GridViewColumn Header="Date" Width="80" DisplayMemberBinding="{Binding date}" />
                <GridViewColumn Header="Price" Width="60" DisplayMemberBinding="{Binding price}" />
                <GridViewColumn Header="Warranty" Width="80" DisplayMemberBinding="{Binding warranty}" />
                <GridViewColumn Header="Month" Width="50" DisplayMemberBinding="{Binding month}" />
            </GridView>
        </ListView.View>
    </ListView>

助手类:

  class Objectdata
{


    public String id
    {
        get; set;
    }

    public String name
    {
        get; set;
    }

    public String month
    {
        get; set;
    }

    public String mobile
    {
        get; set;
    }

    public String address
    {
        get; set;
    }

    public String date
    {
        get; set;
    }

    public String price
    {
        get; set;
    }

    public String warranty
    {
        get; set;
    }
}

这样的输出:

输出

缠扰者

您永远不会创建一个新Objectdata元素,而总是在循环中更新相同的元素。因此,列表中的所有元素都引用相同的对象。添加

oD = new Objectdata() 

在将对象添加到列表后,在循环中。或将您当前的声明移动oD为循环主体的第一条语句。无论如何,您似乎都不会在循环外使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UPDATE语句在sqlite中不起作用

来自分类Dev

SELECT查询中的SQLite时间

来自分类Dev

仅返回SQLite Select语句中的最后一个值

来自分类Dev

SQLite中的join语句出现问题

来自分类Dev

在Ruby中准备和执行SQLite语句

来自分类Dev

在SQLite中创建表IF NOT EXISTS语句

来自分类Dev

SQLite SELECT语句中的可选参数

来自分类Dev

SQLite中的Select语句不返回结果

来自分类Dev

SQLite条件SELECT语句-多个条件但一个语句

来自分类Dev

基于if语句的linq列表中的C#返回值

来自分类Dev

UPDATE语句在sqlite中不起作用

来自分类Dev

仅返回SQLite Select语句中的Last值

来自分类Dev

在SQLite3中检查空语句

来自分类Dev

使用Select语句从SQLite删除

来自分类Dev

SQLite中的复杂条件SQL语句

来自分类Dev

Chrome的SQLITE中的批量插入语句

来自分类Dev

Android SQLite select语句的异常行为

来自分类Dev

在python中运行的Sqlite Case语句

来自分类Dev

选择特定值的语句sqlite

来自分类Dev

具有混合值的SQLite INSERT语句

来自分类Dev

Flex App Sqlite Select语句返回[object Object]

来自分类Dev

在Android中返回SQLite值

来自分类Dev

SQLite SELECT语句中的可选参数

来自分类Dev

对同一表中的两个SELECT语句在SQLITE中执行JOIN

来自分类Dev

如何在iOS的sqlite中的一个查询中执行多个select语句?

来自分类Dev

在SQLite中,Connected始终返回有效值(使用C#)

来自分类Dev

如何处理ionic 2中的sqlite Select语句返回?

来自分类Dev

想要在C#中存储sql select语句的返回值

来自分类Dev

SQLITE 的 SELECT IN 语句的语法是什么?