C# 数据网格视图光标
我的datagrid显示我的sqlBd中的一个表。我为每一列添加一个文本框,用于显示每一行 这是我的代码:C# 数据网格视图光标,c#,winforms,bindingsource,C#,Winforms,Bindingsource,我的datagrid显示我的sqlBd中的一个表。我为每一列添加一个文本框,用于显示每一行 这是我的代码: private void CustomerViewToolStripMenuItem_Click(object sender, EventArgs e) { BindingSource Clients_bs = new BindingSource(); SqlConnection con = new SqlConnection(dc.Con);
private void CustomerViewToolStripMenuItem_Click(object sender, EventArgs e)
{
BindingSource Clients_bs = new BindingSource();
SqlConnection con = new SqlConnection(dc.Con);
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
con.Close();
dgCustomers.DataSource = dt;
Clients_bs.DataSource = dt;
txtBoxIdCustomers.DataBindings.Add(new Binding("Text", Clients_bs,"id_Client"));
txtBoxFullName.DataBindings.Add(new Binding("Text", Clients_bs, "prénom_Nom"));
txtBoxAddress.DataBindings.Add(new Binding("Text", Clients_bs, "adresse"));
txtBoxCity.DataBindings.Add(new Binding("Text", Clients_bs, "ville"));
txtBoxProvince.DataBindings.Add(new Binding("Text", Clients_bs, "province"));
txtBoxPostal.DataBindings.Add(new Binding("Text", Clients_bs, "code_Postal"));
txtBoxPhone.DataBindings.Add(new Binding("Text", Clients_bs, "numéro_Teléphone"));
}
这将填充我的数据网格,就像sql中的表一样,我的txtbox只显示第一行,光标指向数据网格中的第一行
我想在第二行移动数据网格的光标,并在第二行自动显示txtbox的绑定
我可以将按钮设置为“上一个”和“下一个”,但不能设置光标
谢谢你的帮助 而不是这个:
dgCustomers.DataSource = dt;
Clients_bs.DataSource = dt;
SqlConnection con = new SqlConnection(dc.Con);
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
con.Close();
这样做:
Clients_bs.DataSource = dt;
dgCustomers.DataSource = Clients_bs;
using(var con = new SqlConnection(dc.Con))
{
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
}
然后它应该像文本框和网格具有相同的BindingSource一样工作;-)
编辑:
还有,请不要这样:
dgCustomers.DataSource = dt;
Clients_bs.DataSource = dt;
SqlConnection con = new SqlConnection(dc.Con);
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
con.Close();
这样做:
Clients_bs.DataSource = dt;
dgCustomers.DataSource = Clients_bs;
using(var con = new SqlConnection(dc.Con))
{
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
}
与此相反:
dgCustomers.DataSource = dt;
Clients_bs.DataSource = dt;
SqlConnection con = new SqlConnection(dc.Con);
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
con.Close();
这样做:
Clients_bs.DataSource = dt;
dgCustomers.DataSource = Clients_bs;
using(var con = new SqlConnection(dc.Con))
{
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
}
然后它应该像文本框和网格具有相同的BindingSource一样工作;-)
编辑:
还有,请不要这样:
dgCustomers.DataSource = dt;
Clients_bs.DataSource = dt;
SqlConnection con = new SqlConnection(dc.Con);
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
con.Close();
这样做:
Clients_bs.DataSource = dt;
dgCustomers.DataSource = Clients_bs;
using(var con = new SqlConnection(dc.Con))
{
con.Open();
da.SelectCommand = new SqlCommand("SELECT * FROM Clients", con);
da.Fill(dt);
}