【问题标题】:how to insert data in one form and displaying data in gridview in next or another form using C#如何使用 C# 在一个表单中插入数据并在下一个表单或另一个表单中的 gridview 中显示数据
【发布时间】:2016-04-13 03:19:12
【问题描述】:

form1类是:

public partial class Form1 : Form
{
    public static string passingtext;
    public bool click = true;
    public Form1()
    {
        InitializeComponent();
    }
    Form2 form2;
    private void button1_Click(object sender, EventArgs e)
    {
        form2.passThisValuetoDgv(textBox1.Text, textBox2.Text); // pass this value to form2
    }

    private void button2_Click(object sender, EventArgs e)
    {
        form2 = new Form2(this);
        if (click) //to avoid open a multiple form...
        {
            form2.Show(); //i change from form2.Showdialog() so that you can make a data entry...
            click = false;
        }

form 2 类是:

public partial class Form2 : Form
{
    private Form1 form1;

    public Form2(Form1 form2)
    {
        InitializeComponent();
        this.form1 = form2;
    }
    SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\acE\documents\visual studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Database1.mdf;Integrated Security=True;User Instance=True");
    DataTable dt;
    public void AddGridViewRows(string id, string name)
    {
        dt = new DataTable();
  dt.Columns.Add("id");
  dt.Columns.Add("name");
  dataGridView1.DataSource = dt;

  dt.Rows.Add(id);
  dataGridView1.CurrentRow.Cells[1].Value = name;

    }

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {

    }
    public void disp_data()
    {
        cn.Open();

        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter();
        dataGridView1.DataSource = dt;
        cn.Close();
    }

    private void Form2_Load(object sender, EventArgs e)
    {

        dataGridView1.ColumnCount = 2;
        dataGridView1.Columns[0].Name = "id";
        dataGridView1.Columns[1].Name = "name";
        disp_data();
    }
    string[] row;
    public void passThisValuetoDgv(string id, string name)
    {
        if (!string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(name)) //if values are not null...
        {
            row = new string[] { id, name }; //new inserted row...

        }
    }

    //handle this event so that you can still open this form after close... 


    public string passvalue { get; set; }

    private void button1_Click(object sender, EventArgs e)
    {
        form1.click = true;
    }

【问题讨论】:

  • 请在您的问题中添加一个问题。问题是什么?怎么了?应该怎么办?
  • @JonnyHenly 可能不会 - 新用户。 AcEm Kc,请用适当的标签标记您的问题

标签: c# mysql visual-studio


【解决方案1】:

您传递的文本已经是静态的,您所要做的就是string text = Form1.passingtext;

您还将 Form1 传递到 Form2 并感觉到 Form1 中的 passingtext 是静态的,您无法使用您为 Form1 制作的对象的名称来访问它。

要修复这个 ether 删除静态和我们 form1Object.passingtext 或保留静态并且不要将 Form1 传递到 Form2 并执行 Form1.passingtext

【讨论】:

  • 能否请您为此编写整个代码..在我的代码中显示错误。
  • 我今天休息的时候会做
猜你喜欢
  • 1970-01-01
  • 2017-10-16
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多