Выбор таблицы в DataGrid
От: alex_niv  
Дата: 27.12.05 13:19
Оценка:
Добрый день!

Как мне программно нажать [+] и выбрать имя таблицы в DataGrid
Re: Выбор таблицы в DataGrid
От: skyANA Россия  
Дата: 27.12.05 13:43
Оценка:
Как мне программно нажать [+] и выбрать имя таблицы в DataGrid

DataGrid.NavigateTo Method
Navigates to the table specified by row and relation name.

И ещё загляните сюда.
Re[2]: Выбор таблицы в DataGrid
От: alex_niv  
Дата: 27.12.05 14:13
Оценка:
Здравствуйте, skyANA, Вы писали:

ANA>Как мне программно нажать [+] и выбрать имя таблицы в DataGrid


ANA>DataGrid.NavigateTo Method

ANA> Navigates to the table specified by row and relation name.

ANA>И ещё загляните сюда.


Пробовал — не получается у меня ни фига
что такое relation name?
Re: Выбор таблицы в DataGrid
От: alex_niv  
Дата: 27.12.05 14:23
Оценка:
Я с этим dataGrid уже совсем запутался, вот пример:

DataSet custDS = new DataSet();
DataTable myDTable = custDS.Tables.Add("CustTable");
// Create a DataColumn and set various properties.
DataColumn myColumn = new DataColumn();
myColumn.DataType = System.Type.GetType("System.Decimal");
myColumn.Caption = "Price";
myColumn.ColumnName = "Price";
myColumn.DefaultValue = 25;
// Add the column to the table.
myDTable.Columns.Add(myColumn);
// Add 10 rows and set values.
DataRow myRow;
for(int i = 0; i < 10; i++)
{
myRow = myDTable.NewRow();
myRow["Price"] = i + 1;
// Be sure to add the new row to the DataRowCollection.
myDTable.Rows.Add(myRow);
}

dataGrid1.NavigateTo(0, "CustTable");

какой у него relation name?
Re[2]: Выбор таблицы в DataGrid
От: skyANA Россия  
Дата: 27.12.05 14:28
Оценка:
какой у него relation name?

У кого у него? У Вас DataGrid с чем вообще связан?

Напишете
dataGrid1.SetDataBinding( custDS, "CustTable" );

дак вообще никаких relations
Re[3]: Выбор таблицы в DataGrid
От: alex_niv  
Дата: 27.12.05 14:48
Оценка:
Здравствуйте, skyANA, Вы писали:

ANA>какой у него relation name?


ANA>У кого у него? У Вас DataGrid с чем вообще связан?


ANA>Напишете

ANA>
ANA>dataGrid1.SetDataBinding( custDS, "CustTable" );
ANA>

ANA>дак вообще никаких relations

DataGrid у меня связан с custDS только на форме через dataSource
Re: Выбор таблицы в DataGrid
От: alex_niv  
Дата: 27.12.05 14:57
Оценка:
А если написать

dataGrid1.SetDataBinding( custDS, "CustTable" );

то таблица отображается сразу без всяких NavigateTo
но dataGrid1.SetDataBinding работает только в этом примере
а если я пытаюсь читать данные из xml:

custDS.ReadXml("input.xml", XmlReadMode.Auto);

тогда dataGrid1.SetDataBinding выдает ошибку,
если делаю привязку custDS к dataGrid1 на форме тогда все нормально

может я че-то не то делаю?
Re[2]: Выбор таблицы в DataGrid
От: skyANA Россия  
Дата: 27.12.05 15:24
Оценка:
может я че-то не то делаю?

Скорее всего ,))

Вы подробнее опишите ошибки, возникающие при вызове DataGrid.NavigateTo, DataGrid.SetDataBindings.
Когда Вы пытаетесь вызвать данные методы (на конструкторе формы, при загрузке формы)?


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace WindowsApplication6
{
    public class Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.DataGrid dataGrid1;
        private System.Data.DataSet dataSet1;
        private System.Data.DataTable dataTable1;
        private System.Data.DataColumn dataColumn1;
        private System.Data.DataColumn dataColumn2;
        private System.ComponentModel.Container components = null;

        public Form1()
        {
            InitializeComponent();    
        }

        protected override void Dispose( bool disposing )
        {
            if( disposing && components != null) 
                components.Dispose();
            base.Dispose( disposing );
        }

        private void InitializeComponent()
        {
            this.dataGrid1 = new System.Windows.Forms.DataGrid();
            this.dataSet1 = new System.Data.DataSet();
            this.dataTable1 = new System.Data.DataTable();
            this.dataColumn1 = new System.Data.DataColumn();
            this.dataColumn2 = new System.Data.DataColumn();
            ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataTable1)).BeginInit();
            this.SuspendLayout();
            // 
            // dataGrid1
            // 
            this.dataGrid1.DataMember = "";
            this.dataGrid1.DataSource = this.dataSet1;
            this.dataGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
            this.dataGrid1.Location = new System.Drawing.Point(0, 0);
            this.dataGrid1.Name = "dataGrid1";
            this.dataGrid1.Size = new System.Drawing.Size(292, 273);
            this.dataGrid1.TabIndex = 0;
            // 
            // dataSet1
            // 
            this.dataSet1.DataSetName = "NewDataSet";
            this.dataSet1.Locale = new System.Globalization.CultureInfo("ru-RU");
            this.dataSet1.Tables.AddRange(new System.Data.DataTable[] {
                                                                          this.dataTable1});
            // 
            // dataTable1
            // 
            this.dataTable1.Columns.AddRange(new System.Data.DataColumn[] {
                                                                              this.dataColumn1,
                                                                              this.dataColumn2});
            this.dataTable1.TableName = "Table1";
            // 
            // dataColumn1
            // 
            this.dataColumn1.ColumnName = "Column1";
            // 
            // dataColumn2
            // 
            this.dataColumn2.ColumnName = "Column2";
            // 
            // Form1
            // 
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(292, 273);
            this.Controls.Add(this.dataGrid1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.Load += new System.EventHandler(this.Form1_Load);
            ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataTable1)).EndInit();
            this.ResumeLayout(false);

        }

        [STAThread]
        static void Main() 
        {
            Application.Run(new Form1());
        }

        private void Form1_Load(object sender, System.EventArgs e)
        {    
            // Нужное раскомментировать
            // Вариант 1
            // dataGrid1.NavigateTo( 0, dataSet1.Tables[ 0 ].TableName );
            // Вариант 2
            // dataGrid1.SetDataBinding( dataSet1.Tables[ 0 ], "" );
        }
    }
}
Re: Выбор таблицы в DataGrid
От: alex_niv  
Дата: 28.12.05 06:47
Оценка:
Вот так работает:
custDS.ReadXml("input.xml", XmlReadMode.Auto);
dataGrid1.NavigateTo( 0, custDS.Tables[ 0 ].TableName );

а я пробовал так:

DataTable myDTable = custDS.Tables.Add("CustTable");
custDS.ReadXml("input.xml", XmlReadMode.Auto);
dataGrid1.NavigateTo(0, "CustTable");
он записывает данные из xml-файла в таблицу "Table1"

а как сделать что бы xml-файл читался в мою таблицу?
Re: Выбор таблицы в DataGrid
От: alex_niv  
Дата: 28.12.05 13:38
Оценка:
Теперь опять не работает:
Я в xml добавил атрибуты:
<XmlDS>
<table1>
<col1 val1="1" val2="2" val3="3" val4="4" val5="5">Value1
</col1>
<col2 val="2">Value1_1
</col2>
</table1>
</XmlDS>

в [+] появилось две таблицы table1 col1 и table1 col2
и открывать первую кодом
custDS.ReadXml("input.xml", XmlReadMode.Auto);
dataGrid1.NavigateTo( 0, custDS.Tables[ 0 ].TableName );

он уже не хочет
Второй вариант тоже не работает
custDS.ReadXml("input.xml", XmlReadMode.Auto);
dataGrid1.SetDataBinding( custDS.Tables[ 0 ], "" );

Что тут опять не так?
Re: Выбор таблицы в DataGrid
От: alex_niv  
Дата: 29.12.05 07:05
Оценка:
Народ так что все таки у меня творится с этим datagrid
почему при чтении xml-файла перестает работать
dataGrid1.NavigateTo( 0, custDS.Tables[ 0 ].TableName );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.