приведите значение текстового поля к текстовому полю в другой форме - PullRequest
1 голос
/ 29 апреля 2010

Я пытаюсь вставить значения из текстового поля в форме1 в текстовое поле в форме2. Я сделал это, но пока я обновлял приложение, оно перестало работать. Мне также нужен этот случай, когда я получаю ошибку (неверный тип данных в условном выражении), когда я хочу вставить значение из текстового поля (в базу данных доступа), которого нет в форме, которая делает вставку государственными. код: строка 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;    
    }

код для оператора вставки: 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 голосов
/ 29 апреля 2010

Как правило, это не очень хорошая вещь. Я даже не уверен, является ли этот подход потокобезопасным.

Вместо того, чтобы делать

textBox1.Text = bmr.masaTextBox.Text; 

попробуйте добавить открытые свойства в форму1 и сохранить там свои данные. Или, в качестве альтернативы, передайте необходимые данные в конструктор form2. В любом случае, текстовое поле не должно быть хранилищем данных, где вы сохраняете значение, а затем получаете доступ откуда-то еще ... текстовое поле должно использоваться для отображения и чтения данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...