将文本框的值转换为另一种形式的文本框

时间:2010-04-29 05:57:04

标签: c# forms textbox

我正在尝试将form1中的文本框中的值粘贴到form2中的文本框中。我做到了,但是当我升级我的应用程序时它停止工作。当我想从文本框(到访问数据库)插入一个不在进行插入状态的表单上的值时,我还需要我得到一个错误(条件语句中的incorect数据类型)。 代码: string textFromForm1;

    public Form2()
    {
        InitializeComponent();


    }

    public void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        using (Form3 obrok = new Form3()) 
        obrok.ShowDialog();

    }

    private void button3_Click(object sender, EventArgs e)
    {
        this.Hide();


    }

    private void button2_Click(object sender, EventArgs e)
    {

    }

    private void textBox1_TextChanged_1(object sender, EventArgs e)
    {

    }
    Form1 bmr=new Form1();
    int masa;
    private void Form2_Load(object sender, EventArgs e)
    {
        textBox1.Text = bmr.masaTextBox.Text;    
    }

insert语句的代码:  string conString =“Provider = Microsoft.Jet.OLEDB.4.0;”          +“数据源= C:\ Users \ Simon \ Desktop \ save.mdb”;

        OleDbConnection empConnection = new OleDbConnection(conString);


        string insertStatement = "INSERT INTO obroki_save "
                             + "([ID_uporabnika],[ID_zivila],[skupaj_kalorij]) "
                             + "VALUES (@ID_uporabnika,@ID_zivila,@skupaj_kalorij)";

        OleDbCommand insertCommand = new OleDbCommand(insertStatement, empConnection);

        insertCommand.Parameters.Add("@ID_uporabnika", OleDbType.Char).Value = users.iDTextBox.Text; 
        insertCommand.Parameters.Add("@ID_zivila", OleDbType.Char).Value = iDTextBox.Text;
        insertCommand.Parameters.Add("@skupaj_kalorij", OleDbType.Char).Value = textBox1.Text;
        empConnection.Open();

        try
        {
           int count = insertCommand.ExecuteNonQuery();
        }
        catch (OleDbException ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            empConnection.Close();
            textBox1.Clear();
            textBox2.Clear();
            textBox3.Clear();
            textBox4.Clear();
            textBox5.Clear();
        }

1 个答案:

答案 0 :(得分:0)

一般来说这不是一件好事。我甚至不确定这种方法是否是线程安全的。

而不是做

textBox1.Text = bmr.masaTextBox.Text; 

尝试向form1添加公共属性,并将数据保存在那里。或者将必要的数据传递给form2的构造函数。无论如何,文本框不应该是一个数据存储,你保留一个值,然后从其他地方访问...文本框应该用于显示数据和阅读它。