C# 使用带有Where子句的SQL查询字符串填充DataGridView会在C中产生空引用错误#

C# 使用带有Where子句的SQL查询字符串填充DataGridView会在C中产生空引用错误#,c#,sql-server,ado.net,C#,Sql Server,Ado.net,我试图用SQL查询字符串填充DatagridView。我的代码如下 private void btnSrcDataID_Click(object sender, EventArgs e) { try { dgvInsertInfo.Refresh(); SqlComm.Connection = SqlConn; String

我试图用SQL查询字符串填充DatagridView。我的代码如下

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

                SqlComm.Connection = SqlConn;

                String sqlQueryString = ("SELECT * FROM MyDataTable WHERE      
                DataID=@DataID");
                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

我得到一个错误,如下所示

似乎我的一个声明没有正确捕获。所以这个错误发生了。我不能理解我做错了什么

感谢和问候,
Chiranthaka

请将@DataID声明为int

这不是给出此错误的查询。您需要将对象设置为
new
。可能是这个<代码>SqlComm.Connection=SqlConn,您可能需要它是
SqlComm.Connection=newsqlconn遍历逻辑或设置断点以跟随逻辑。您是否尝试过放置断点并检查txtDataID.txt的值,然后将其作为参数值手动运行SP?另外,您是否调用了
dgvInsertInfo.DataBind()?在使用SqlComm.Parameters.AddWithValue之前,SqlComm可能不存在,因为它是在之后构造的