2017-07-18 44 views
-1

我试图填充一个SQL查询字符串一个DataGridView空引用错误。我的代码如下。填充一个DataGridView使用SQL查询字符串where子句给出了C#

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

       SqlComm.Connection = SqlConn; 

       String sqlQueryString = ("SELECT * FROM MyDataTable WHERE  
       [email protected]"); 
       SqlComm.Parameters.AddWithValue("@DataID", txtDataID.Text); 

       SqlComm = new SqlCommand(sqlQueryString, SqlConn); 
       SqlDataTable = new DataTable(); 

       SqlAdapt = new SqlDataAdapter(SqlComm); 

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

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

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

此查询将根据来自参数@DataId传递的值检索数据。有了这个结果,DataGridView将被填充。

我得到一个错误的下面。

enter image description here

看来,我的声明的一个不正确捕获。所以这个错误发生。我不明白我做错了什么。

感谢和问候, Chiranthaka

+1

这不是查询给这个错误。您需要将对象设置为“新”。可能是这个......'SqlComm.Connection = SqlConn;',你可能需要它是'SqlComm.Connection = new SqlConn;'通过逻辑或者设置一个断点来跟着它。 –

+0

您是否尝试过放置断点并检查txtDataID.txt的值 - 然后手动运行您的SP并将其作为参数值传递?另外,你是否调用了'dgvInsertInfo.DataBind();'? –

+0

在使用SqlComm.Parameters.AddWithValue之前,SqlComm可能不存在,因为它是在 – user6144226

回答

1

请声明@DataID这个变量