2017-05-04 67 views
0

我有一個網格框,我想填充數據庫中用戶名是1的數據,並且它們的位置是在過去24小時內添加的。將SQL查詢中的數據放入網格視圖asp.net

我已經測試了SQL查詢並且它工作正常,但是當試圖將數據放入網格框時沒有任何反應。

這裏是我在aspx.cs文件中使用的代碼:

public partial class last24hours : System.Web.UI.Page 
{ 
    SqlConnection con = new SqlConnection(@"Data Source = sql2008.net.dcs.hull.ac.uk; Initial Catalog = rde_514872; Integrated Security = True"); 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     using (SqlCommand cmd = new SqlCommand()) 
     { 
      cmd.CommandText = "SELECT Location FROM StaffLocation WHERE [Date and Time]>= getdate()-1 AND [Username] = '1'"; 
      cmd.Connection = con; 
      DataTable dt = new DataTable(); 
      using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) 
      { 
       sda.Fill(dt); 
       GridView1.DataSource = dt; 
       GridView1.DataBind(); 
      } 
     } 
    } 
} 

gridView1是我與沒有SQL源製成的空的網格圖。

這是在GridView如何在aspx文件初始化:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> 
    </asp:GridView> 
+0

運行程序,設置斷點,並檢查'dt'當你將其綁定到GridView?它有數據嗎?什麼'GridView'的聲明看起來像? – mason

+0

我測試了你的代碼,它工作得很好。連接不正確或查詢不返回任何數據。我懷疑'getdate() - 1',這是一個奇怪的結構。更好地使用sql'DATEADD'。 – VDWWD

+0

dt正在顯示正確的表格,如果出現錯誤,我還會放置網格視圖的aspx代碼 – lCopp

回答

1

你的AutoGenerateColumns設置爲false。由於您還沒有手動定義任何列,當然當然什麼都不會顯示。有兩個修正:

將自動生成列設置爲true。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" /> 

或手動附帶調試器定義列

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:BoundField DataField="Location" HeaderText="Location" SortExpression="Location" /> 
    </Columns> 
</asp:GridView> 
+0

謝謝,這是完美的!你是一個拯救生命的人 – lCopp

相關問題