我在Windows窗体应用程序中有4个文本框,还有一个名为“添加”的gridview和按钮。我想要的是,在4个文本框中输入的数据应该转到datagridview的同一行中的四个不同列,因为我单击Add按钮。如果我清除文本框,再次填写它们并再次单击“添加”按钮,那么数据应该转到gridview的第二行。
答案 0 :(得分:3)
在您的应用中的某处创建类似以下的类
public class MyClass
{
public string field1 { get; set; }
public string field2 { get; set; }
public string field3 { get; set; }
public string field4 { get; set; }
}
在form.cs中写下这个,
public static List<MyClass> lst = new List<MyClass>();
在添加按钮的点击事件中执行此操作
private void btnAdd_Click(object sender, EventArgs e)
{
MyClass obj = new MyClass();
obj.field1 = txt1.Text.Trim();
obj.field2 = txt2.Text.Trim();
obj.field3 = txt3.Text.Trim();
obj.field4 = txt4.Text.Trim();
lst.Add(obj);
dataGridView1.DataSource = lst;
}
答案 1 :(得分:0)
要遵循的步骤:
1)在绑定DataGrid视图时,将DataSource保存在Viewstate Variable
中2)为Add Button定义Click事件 在click事件中,调用具有数据源的Viewstate变量,将其转换为DataTable。创建该数据表的新行,将值分配给新行的单元格。将此新行添加到Datatable,再次在ViewSate中保存dataTable,将数据源绑定到DataGrid
那就是全部〜
答案 2 :(得分:0)
首先感谢SHAKIR SHABBIR先生,但我认为Windows窗体应用程序中没有viewstate ......
我建议使用静态集合类型......
单击添加按钮创建类的对象,使用文本框设置其所有值,在网格中插入行,以及保存所有行数据(对象),可以为输入表单定义类,并为文本框定义变量List中的每个gridview行的类)您还可以使用静态数据表...您必须为每个文本字段创建列。 向datatable添加行...选择网格的数据源...
如果您需要进一步的帮助,我总是在这里帮助您..
答案 3 :(得分:0)
使用此代码:
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Dataset;Integrated Security=True");
SqlDataAdapter ds1 = new SqlDataAdapter();
BindingSource bd = new BindingSource();
public Form1()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
ds1.InsertCommand = new SqlCommand("INSERT INTO Employee VALUES(@FirstName,@LastName)", con);
ds1.InsertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
ds1.InsertCommand.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text;
con.Open();
ds1.InsertCommand.ExecuteNonQuery();
con.Close();
}
private void btndisplay_Click(object sender, EventArgs e)
{
ds1.SelectCommand = new SqlCommand("Select * from Employee", con);
ds.Clear();
ds1.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
bd.DataSource = ds.Tables[0];
//txtFirstName.DataBindings.Add("Text", bd, "FirstName");
//txtLastName.DataBindings.Add("Text", bd, "LastName");
}
private void btnPervious_Click(object sender, EventArgs e)
{
bd.MovePrevious();
update();
records();
}
private void btnNext_Click(object sender, EventArgs e)
{
bd.MoveNext();
update();
records();
}
private void btnFirst_Click(object sender, EventArgs e)
{
bd.MoveFirst();
update();
records();
}
private void btnLast_Click(object sender, EventArgs e)
{
bd.MoveLast();
update();
records();
}
private void update()
{
dataGridView1.ClearSelection();
dataGridView1.Rows[bd.Position].Selected = true;
records();
}
private void records()
{
label1.Text = "records" + bd.Position + " of " + (bd.Count - 1);
}
别忘了标记这个答案