【问题标题】:How to read columns from compact database如何从紧凑型数据库中读取列
【发布时间】:2011-06-30 19:21:12
【问题描述】:

我正在使用 C# 2010 Express 和 Sql Compact。我有一个名为“记录”的表和一个名为“名称”的列,我想在列表框中列出这些名称。

我编写了该代码,但最后一行是“ExecuteReader:连接属性尚未初始化”。例外。

  SqlCeConnection Baglan = new SqlCeConnection("Data Source=|DataDirectory|CeoDatabase.sdf;Password=CeoDB;Persist Security Info=True");

        Baglan.Open();

    SqlCeCommand BarlariAl = new SqlCeCommand("SELECT Names FROM Barlar");

    SqlCeDataReader BarlariOku = BarlariAl.ExecuteReader();

【问题讨论】:

    标签: c# compact-database


    【解决方案1】:

    至于接下来要写什么,假设有一个名为listbox 的列表框(给定变量名的粗体假设),你会写:

    while(BarlariOku.Read())
        listbox.Items.Add(BarlariOku["Names"]);
    

    顺便说一句,您没有正确处理您的对象。它应该是这样的:

    using(var conn = new SqlCeConnection("Data Source=|DataDirectory|CeoDatabase.sdf;Password=CeoDB;Persist Security Info=True"))
    {
        conn.Open();
    
        var comm = new SqlCeCommand("SELECT Names FROM Barlar", conn);
        SqlCeDataReader reader = comm.ExecuteReader();
    
        while(reader.Read())
            listbox.Items.Add(reader["Names"]);
    }
    

    【讨论】:

      【解决方案2】:

      您没有将连接与命令相关联。试试下面的代码。

      SqlCeCommand BarlariAl = new SqlCeCommand("SELECT Names FROM Barlar", Baglan);
      

      要列出列,请尝试从MSDN 借用的这段代码(添加了右大括号)。

      string query = "SELECT [Order ID], [Customer] FROM Orders";
      SqlCeConnection conn = new SqlCeConnection(connString);
      SqlCeCommand cmd = new SqlCeCommand(query, conn);
      
      conn.Open();
      SqlCeDataReader rdr = cmd.ExecuteReader();
      
      try
      {
          // Iterate through the results
          //
          while (rdr.Read())
          {
              int val1 = rdr.GetInt32(0);
              string val2 = rdr.GetString(1);
          }
      }
      finally
      {
          // Always call Close when done reading
          //
          rdr.Close();
      
          // Always call Close when done reading
          //
          conn.Close();
      }
      

      【讨论】:

      • 没错,非常感谢。我现在如何列出名称?我不知道接下来我必须写什么。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多