System.Data.DataRowViev 附近的语法不正确
本文关键字:语法 不正确 Data DataRowViev System | 更新日期: 2023-09-27 17:56:32
我有与组合框控件连接的 DatagridView。 组合框用于筛选表中的数据。 组合框和数据网格视图中的数据来自同一个表。 我寻找错误,但找不到。 它说:System.Data.DataRowViev 附近的语法不正确
我单击确定按钮,然后单击其他错误:连接未关闭。连接的当前状态为打开。请帮忙
private void VraboteniPoOpstini_Load(object sender, EventArgs e)
{
try
{
con.Open();
ad = new System.Data.SqlClient.SqlDataAdapter("Select * from tbl_PersonalniPodatoci ", con);
ds = new DataSet();
ad.Fill(ds, "tbl_PersonalniPodatoci");
dt = ds.Tables["tbl_PersonalniPodatoci"];
con.Close();
//fill combobox
cbOpstini.DataSource = dt;
cbOpstini.DisplayMember = "Opstina";
cbOpstini.ValueMember = "Sifra";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "ГРЕШКА", MessageBoxButtons.OK);
}
}
private void cbOpstini_SelectedIndexChanged(object sender, EventArgs e)
{
string izberiOpstina = cbOpstini.SelectedValue.ToString();
string sSql;
try
{
con.Open();
//datagridview
sSql = "Select Sifra, Prezime, Ime, Opstina From tbl_PersonalniPodatoci Where Opstina'" + izberiOpstina + "' Order by Sifra";
ad = new System.Data.SqlClient.SqlDataAdapter(sSql, con);
SqlCommandBuilder cb = new SqlCommandBuilder(ad);
DataTable dt = new DataTable();
ad.Fill(dt);
con.Close();
// fill datagridview
grdOpstini.DataSource= dt;
}
catch (Exception ex )
{
MessageBox.Show(ex.Message, "ГРЕШКА", MessageBoxButtons.OK);
}
}
正如Henk已经说过的那样 - 您需要更加注意您的连接,如何打开和关闭它们。另外:如果您使用 SqlDataAdapter
,您真的没有必要手动打开连接并再次关闭它 - 数据适配器会自动为您执行此操作。
而且:在第一个例子中,你只需要一个数据表,但你创建了一个数据集,然后从中提取表——这是完全不必要的开销。
尝试这样的事情:
private void VraboteniPoOpstini_Load(object sender, EventArgs e)
{
try
{
// add a "using System.Data.SqlClient" to your file, to make this simpler
ad = new SqlDataAdapter("Select * from tbl_PersonalniPodatoci ", con);
DataTable dt = new DataTable();
ad.Fill(dt);
//fill combobox
cbOpstini.DataSource = dt;
cbOpstini.DisplayMember = "Opstina";
cbOpstini.ValueMember = "Sifra";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "ГРЕШКА", MessageBoxButtons.OK);
}
}
您可以对第二个查询执行类似的方法(立即使用DataTable
,在使用 SqlDataAdapter 等时无需打开和关闭 SqlConnection)。