我有这个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
答案 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中正确填充。
感谢。