搜索并显示某些表格元素

时间:2014-11-10 11:47:12

标签: c# database search visual-studio-2012 local

我正在尝试搜索我的本地数据库表,只显示它的所有列。

我开始发送

SearchID("1234");

到目前为止我的代码:

 private static void SearchID(string CostumerID)
 {
     string conStr = @"Data Source = C:\Users\secwp_000\documents\visual studio 2012\Projects\Module5\Module5\Orderdatabase.sdf";
     DataSet ds = new DataSet();
     SqlCeConnection con = new SqlCeConnection(conStr);
     SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM [Order]", con);

     SqlCeDataReader dr = cmd.ExecuteReader();

     SqlCeDataAdapter adapt = new SqlCeDataAdapter(cmd);
     adapt.Fill(ds, "Order");

     while (dr.Read()) 
     {
         string str = (string)dr[1];
         if (str == CostumerID)
         {
             Console.WriteLine(str);
         }
     }
 }

我在哪里想错了?

停止

SqlCeDataReader dr = cmd.ExecuteReader();

说我没有联系。但只是听起来很奇怪,因为我刚刚连接..

3 个答案:

答案 0 :(得分:0)

您有连接但尚未打开它:

con.Open();
adapt.Fill(ds, "Order");
con.Close();

此外,您应该对usingSqlConnection等一次性对象使用SqlCommand语句,以确保它们得到妥善处理:

using(SqlCeConnection con = new SqlCeConnection(conStr))
using(SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM [Order]", con))
{

}

答案 1 :(得分:0)

您必须使用

打开连接
If(con.state.toString()=="closed")
con.open();

我在你的查询中发现了一个错误,为什么你在从数据库中获取后比较你的结果。你可以直接在SQL查询中过滤

Select * from order where table.customer_Id = customerId

答案 2 :(得分:0)

是的,因为没有看到这个,我觉得很蠢,哈哈。它奏效了!但它不会显示任何表格,     while(dr.Read())             {                 string str =(string)dr [1];                 if(str == CostumerID)                 {                     Console.WriteLine(STR);                 }             }

按照给我的指示,此代码没有任何问题,它可以显示带有costumerID 1234的订单。