2017-06-14 10 views
2

私はGridViewです。 DataTableを使用してDBテーブルのデータをグリッドに表示しようとしています。だから私はDataTableにクエリの結果を保存していますが、データは表示されません。ここに私のコードです。助けてください。データベーステーブルのデータをc#のデータテーブルに表示しますが、データテーブルは空白です

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    {   
     DataTable dataTable = new DataTable(); 
     string constr = ConfigurationManager.ConnectionStrings["gridconnection"].ConnectionString; 

     string query = "select * from GridExcel"; 

     SqlConnection con1 = new SqlConnection(constr); 
     SqlCommand cmd = new SqlCommand(query, con1); 
     con1.Open(); 

     // create data adapter 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     // this will query your database and return the result to your 
     datatable 
     da.Fill(dataTable); 
     Gridview1.DataSource = dataTable; 
     Gridview1.DataBind(); 
     ViewState["CurrentTable"] = dataTable; 
     con1.Close(); 
    } 
} 
+1

con.Open();またはcon1.Open()? –

+0

'select * from GridExcel'は何かを返しますか? –

+0

'SqlDataAdapter'は開いている接続を必要としません –

答えて

0

は、DataReaderを使用してみてください:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 

    DataTable dataTable = new DataTable(); 
    string constr =  ConfigurationManager.ConnectionStrings["gridconnection"].ConnectionString; 

    string query = "select * from GridExcel"; 

    SqlConnection con1 = new SqlConnection(constr); 
    SqlCommand cmd = new SqlCommand(query, con1); 
    con1.Open(); 

    // create data adapter 
    SqlDataReader reader = cmd.ExecuteReader(); 
    // this will query your database and return the result to your datatable 
    dataTable.Load(reader); 
    Gridview1.DataSource = dataTable; 
    Gridview1.DataBind(); 
    ViewState["CurrentTable"] = dataTable; 
    con1.Close(); 
    } 
} 
+0

誰も私に説明/明確化のために私に尋ねられました、ここで私はなぜアダプタが失敗した場合に読者が仕事をするのか疑問を感じます。私のポストのいずれかの料金の説明が必要な場合は、コメントまたはメールでお問い合わせください。 –

+0

私は議論に興味がなく、個人的な復讐を取って、親切に私のコメントを無視します。時間を無駄にしてごめんね。 –

+0

明確にするために:私が理解しているところから、列が既に存在する場合は、SqlDataAdapterがテーブルを埋めます(https://msdn.microsoft.com/de-de/library/905keexk(v=vs.110) ).aspx) –

0

次のコードは、私にとっては作品です。

string constring = @"Data Source=.\SQL2005;Initial Catalog=gridconnection;"; 
    using (SqlConnection con = new SqlConnection(constring)) 
    { 
     using (SqlCommand cmd = new SqlCommand("select * from GridExcel", con)) 
     { 
      cmd.CommandType = CommandType.Text; 
      using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 
      { 
       using (DataTable dt = new DataTable()) 
       { 
        da.Fill(dt); 
        dataGridView1.DataSource = dt; 
       } 
      } 
     } 
    } 
関連する問題