введение запросов через textBox1 в Form2, чтоб результат таблицы отображался на Form1

Zvonimir
Дата: 26.04.2006 17:47:47
Здравствуйте!!!

Есть Вин приложение которое подключено к базе Акссесс.
Вот, что мне нужно, допустим есть кнопка на Форме1(на форме в гриде отображаються данные из Базы) "SQL", она вызывает Форму2 (на, которой есть ТекстБох1, и кнопка ОК). Теперь если я ввожу в поле запрос "SELECT Name, Surname, FROM Users " и нажимаю ОК, в Гриде Формы1 отображался результат запроса.


З.Ы. Аналогичное у меня получаеться только если ТехтБох1 есть на Форме1.

Буду благодарен за любую помощь!!!
saint
Дата: 26.04.2006 21:18:46
взять содержимое textbox1 через свойство:

//...form2
public string QueryBody
{
get
{
return textbox1.Text;
}
}

// ... form1
command.CommandText=form2.QueryBody;
Zvonimir
Дата: 27.04.2006 15:55:04
Наверное я не правильно (поскольку не имею большого опыта) поставил вопрос.
Значит так: у меня на Форме1. Есть ДатаГрид, в котором отображаеться таблица из Акссесовской базы даных. На форме есть куча кнопок, которые Сохраняют и Обновляют изменения в базе, Добавляют и Удаляют строки и тд., все это работает нормально.

А теперь, я хочу создать кнопку которая вызывает Форму2, на которой будет расположено текстБокс1 (для ввода запроса), кнопка для подтверждения этого запроса.

Результат который я хочу - это, чтоб, после ввода запроса на Форме1 в гриде отображался результат ввода этого самого запроса.

Сначала это все было на Форме1 (текстБокс1 и кнопка), но это меня не устраивает (я хочу чтоб это было отдельно).

Вот код кнопки, которая у меня есть (повторяю, это мне это не нравиться, хотя это и работает правильно)!

private void tbOk_Click(object sender, System.EventArgs e)
{
try
{
if (textBox1.Text != "")
{
string myConn = @"Provider = Microsoft.Jet.OLEDB.4.0;"+
"data source = ././basa.mdb";

OleDbConnection oleDbConnetion1 = new OleDbConnection();
oleDbConnetion1.ConnectionString = myConn;
oleDbConnetion1.Open();

dataSet1 = new DataSet();
dataSet1.CaseSensitive = true;

oleDbSelectCommand1 = new OleDbCommand();
oleDbSelectCommand1.Connection = oleDbConnetion1;
oleDbSelectCommand1.CommandText = textBox1.Text;

oleDbDataAdapter1 = new OleDbDataAdapter();
oleDbDataAdapter1.SelectCommand = oleDbSelectCommand1;
oleDbDataAdapter1.TableMappings.Add("Table","cd");
oleDbDataAdapter1.Fill(dataSet1);

this.dataGrid1.DataSource = dataSet1.Tables["cd"].DefaultView;
}
else
{
MessageBox.Show("You not enter any SQL code!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
oleDbConnetion1.Close();
}
}
winsky!
Дата: 27.04.2006 16:30:20
ну сделайте у формы1 метод ExecuteQuery(string query)
а в форму2 передавайте ссылку на форму1
и по нажатию кнопки на форме2 вызывайте метод ExecuteQuery(string query) формы1
Zvonimir
Дата: 27.04.2006 16:39:36
winsky!
ну сделайте у формы1 метод ExecuteQuery(string query)
а в форму2 передавайте ссылку на форму1
и по нажатию кнопки на форме2 вызывайте метод ExecuteQuery(string query) формы1


Я новичек, и поєтому не понимаю, много, а можно пример............
winsky!
Дата: 27.04.2006 16:50:21
class form1
{
//bla
internal void ExecuteQuery(string query)
{
   yourCommand.CommandText = query;
   //fill dataset
}
//bla
}
class form2
{
//bla
private form1 _parentForm;
public form2(form1 parentForm)
{_parentForm = parentForm;}
private void button1_Click(object sender, System.EventArgs e)
{
   _parentForm.ExecuteQuery(TextBox1.Text);
    this.Close();
}
//bla
}
Zvonimir
Дата: 27.04.2006 19:04:31
Что-то не выходит!!!

А все должно быть как на картинке.....
winsky!
Дата: 28.04.2006 10:19:11
что именно не выходит? покажите код...
Zvonimir
Дата: 28.04.2006 12:55:28
winsky!
что именно не выходит? покажите код...


Я просто в этом новичек, вот и не понимаю....
Воообщем я выкладываю пример приложения....
winsky!
Дата: 28.04.2006 13:55:44
у меня не открывается файл
вы в 2005 студии ваяете? у меня 2003