2017-07-19 48 views
0

我有這個datadridview顯示SQL數據庫表中的數據。在這裏我使用了一個SQLDataAdapter和一個DataTable()。請參閱下面的代碼片段。具有標量變量的SQL查詢不填充數據格式

private void btnSrcDataID_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       dgvInsertInfo.Refresh(); 
       SqlComm = new SqlCommand(); 

       SqlComm.Connection = SqlConn; 

       SqlComm.CommandText = ("SELECT * FROM MyDataTable WHERE DataID = @SDataID"); 
       SqlComm.Parameters.AddWithValue("@SDataID", txtDataID.Text); 
       SqlDataTable = new DataTable(); 

       SqlAdapt = new SqlDataAdapter(SqlComm); 

       //DataSet dsQryDataId = new DataSet(); 
       SqlAdapt.Fill(SqlDataTable); 

       //Passing data to DatagridView 
       dgvInsertInfo.DataSource = SqlDataTable; 

      } 
       catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

我認爲問題是用SQL QueryString或SqlAdapt.Fill(),但我不明白這個問題。你能請別人幫我解決這個問題嗎?

感謝, Chiranthaka

+0

你在'SqlDataTable'中得到了什麼數據嗎? –

+0

SqlDataTable應該存儲來自數據庫表MyDataTable的數據,並且應該根據SqlComm.CommandText =()中的查詢字符串進行過濾。但我沒有收到任何數據。 – ChiranthakaJ

+0

我試過下面的代碼片段作爲SQL語句,但無法得到結果。 'SqlComm.CommandText =「SELECT * FROM MyDataTable WHERE(DataID LIKE @SDataID)」; SqlComm.Parameters.AddWithValue(「@ SDataID」,txtDataID.Text); ' – ChiranthakaJ

回答

0

其實在我的情況下傳遞值的標量@SDataID發生時,由於一個錯字錯誤的錯誤。以便SQL語句的語法是正確的。請參閱下面的正確SQL語句。

private void btnSrcDataID_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       dgvInsertInfo.Refresh(); 

       SqlComm = new SqlCommand(); 
       SqlComm.Connection = SqlConn; 
       SqlComm.CommandText = "SELECT * FROM MyDataTable WHERE (DataID LIKE @SDataID)"; 
       SqlComm.Parameters.AddWithValue("@SDataID", txtSrcDataID.Text); 

       SqlDataTable = new DataTable(); 
       SqlAdapt = new SqlDataAdapter(SqlComm); 
       SqlAdapt.Fill(SqlDataTable); 

       dgvInsertInfo.DataSource = SqlDataTable; 

      } 
      catch (Exception ex) 
      { 
        MessageBox.Show(ex.Message); 
      } 
     } 

現在數據在DataGridView中正確填充。

謝謝。