2017-05-04 14 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

実行付属のデバッガでプログラム、ブレークポイントを設定し、あなたがGridViewコントロールにバインドするとき、 'dt'を検査?データはありますか? '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

関連する問題