带有标量变量的SQL查询不会填充Datagridview

时间:2017-07-19 17:24:46

标签: c# sql datagridview ado.net

我有这个datadridview,它在SQL数据库表中显示数据。在这里,我使用了SQLDataAdapter和DataTable()。请参阅以下代码段。

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

1 个答案:

答案 0 :(得分: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中正确填充。

感谢。