从SQL Server CE数据库中的每一行获取数据

时间:2014-05-27 20:11:03

标签: c# sql sql-server-ce

我以前做过这件事,但对于我的生活,我无法记住这是如何运作的。

我有一个数据库,其中有一堆行,其中包含名称和ID号等数据。我需要做的是从数据库中的名称填充树视图。我正在遇到一个问题,只是让读者阅读数据库中的多行。它似乎只是读取第一行而不是后续行。实际任务类似于以下内容:

对于数据库中的每一行,将父节点添加到树视图,其中名称为= to(reader[4].ToString())。这是关于它的。目前我所要做的就是让它弹出一个消息框,显示它正在读取多行。

请问我错过了什么让这个工作?

SqlCeConnection conn = null;
    try
    {
        using (conn = new SqlCeConnection("Data Source =" + ConfigurationFile + "; Password =*********"))
        {
            conn.Open();
            SqlCeCommand cmd = conn.CreateCommand();
            cmd.CommandText = "select * from t_mainprofiles";
            cmd.ExecuteNonQuery();
            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                ID = (Convert.ToInt32(reader[1]));
                profileID = (Convert.ToInt32(reader[2]));
                profileNAME = (reader[4].ToString().Trim());
                profileLOC = (reader[5].ToString().Trim());
                profileCHILD = (reader[6].ToString().Trim());
            }
            MessageBox.Show(profileNAME);
            reader.Close();
        }
    }
    catch(Exception error)
    {
        MessageBox.Show(""+error);
        System.Diagnostics.Process.GetCurrentProcess().Kill();
    }
    finally
    {
        conn.Close();
    }

1 个答案:

答案 0 :(得分:1)

尝试删除行cmd.ExecuteNonQuery();

以下是MSDN的一个示例  http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.read(v=vs.110).aspx