2012-08-13 138 views
0

我在ASP.NET頁面中有一個簡單的搜索頁面,我正在填充基於SQL Query的數據集。
數據集未被填充

  con.Open();  
      cmd.ExecuteNonQuery(); 
      SqlDataAdapter da = new SqlDataAdapter(); 
      da.SelectCommand = cmd; 
      DataSet ds = new DataSet(); 
      if (ds.Tables.Count > 0) 
      { 
       if (ds.Tables[0].Rows.Count > 0) 
       { 
        da.Fill(ds, "Emp"); 
        GridView1.DataSource = ds; 
        GridView1.DataBind(); 
       } 

      } 
      else 
      { 
       Label2.Text = "Data not found"; 

      } 
      con.Close(); 

但即使搜索項存在,我得到這個結果作爲「數據未找到」。爲什麼是不是執行if語句?

回答

1

當別人建議你需要移動一行代碼如下所示:

 con.Open();  
     cmd.ExecuteNonQuery(); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     da.SelectCommand = cmd; 
     DataSet ds = new DataSet(); 
     da.Fill(ds, "Emp"); // SEE THIS LINE! 
     if (ds.Tables.Count > 0) 
     { 
      if (ds.Tables[0].Rows.Count > 0) 
      { 

       GridView1.DataSource = ds; 
       GridView1.DataBind(); 
       Label2.Text = string.Empty; 
      } 

     } 
     else 
     { 
      GridView1.DataSource = null; 
      GridView1.DataBind(); 
      Label2.Text = "Data not found"; 

     } 
     con.Close(); 
+0

感謝它的工作..一個更多的問題..當我輸入表中存在的值,它返回值..當我在文本框中輸入的值不在數據庫表中,我收到消息 - 「找不到數據」,但之前搜索的GridView仍然存在。 – Girish 2012-08-13 11:38:48

+0

查看我的更新答案以解決第二個問題! (並投票的答案了!); O) – bUKaneer 2012-08-13 11:46:25

+0

曾爲非常感謝..這裏的最後一個疑問。當我進入不相關的文字,它給「找不到數據」錯誤。現在,當我進入的Java這是存在於數據庫表,它與先前的消息重疊.. – Girish 2012-08-13 11:53:38

0

你缺少

dataadapter.fill(ds) 
+0

我已經做到了原樣'DA。填充(ds,「Emp」);' – Girish 2012-08-13 11:27:48

+0

你也可以這樣做,如果它解決了你的問題,你能否接受答案? – 2012-08-13 11:33:34

0

很可能不工作,因爲你已經執行之前試圖填補數據集查詢。嘗試刪除cmd.ExecuteNonQuery();.另外,Non Query命令不會返回任何結果。確保你的查詢確實返回結果。

+0

那麼,如果我刪除if else條件,代碼會得到執行。這是工作..當我執行if..else,「如果」條件不工作.. – Girish 2012-08-13 11:24:31

0

喜請儘量將其工作爲我的GridView

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConectionString"].ConnectionString); 

      SqlCommand cmd = new SqlCommand("Select * from Tbl_Employee", con); 

      SqlDataAdapter da = new SqlDataAdapter(cmd); 

      DataSet ds = new DataSet(); 
      da.Fill(ds); 
      if (ds.Tables.Count > 0) 
      { 
       if (ds.Tables[0].Rows.Count > 0) 
       { 
        gv1.DataSource = ds.Tables[0]; 
        gv1.DataBind(); 
       } 
      } 
+0

有你試試這個? – 2012-08-13 11:51:49