C# 使用带有Where子句的SQL查询字符串填充DataGridView会在C中产生空引用错误#
我试图用SQL查询字符串填充DatagridView。我的代码如下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
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可能不存在,因为它是在之后构造的