469,364 Members | 2,398 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,364 developers. It's quick & easy.

DataSet - Errors editing rows after using InsertAt() - DataGrid Bo

I tried posting this in the WinForm forum and got no hits so I am
trying it here.

After inserting a new data row to a DataTable that is bound to a
datagrid, I am unable to change data in a row that is after the newly
added row without getting bizarre results.

I have added the full code for the test below. Create a project drop
in the code and run. There is nothing crazy about the code. I used
the designer to add the dataset and to do the binding.

Any help would be appreciated.

Cheers,
Dave
Test #1
======================
1) Click on the row where ID = 1
2) Click "Add Row" button
3) Click on the cell ID = 2 Number = 4
4) Change the number from 4 to 5
5) Move off the row (i.e. hit the down arrow key)
6) Notice there are 2 rows with ID = 2 now
2, 5, 6
2, 4, 6
Test #2
======================
1) Click on the row where ID = 1
2) Click "Add Row" button
3) Click "Remove Binding"
4) Click "Add Binding"
5) Click on the cell ID = 2 Number = 4
6) Change the number from 4 to 5
7) Move off the row (i.e. hit the down arrow key)
8) Notice there are 2 rows with ID = 2 now
2, 5, 6
2, 4, 6

==========================

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

namespace Controls
{
/// <summary>
/// Summary description for TestDataGrid.
/// </summary>
public class TestDataGrid : System.Windows.Forms.Form
{
private int idCounter = 100;

#region Unimportant Window stuff

private System.Windows.Forms.DataGrid theGrid;
private System.Windows.Forms.Button addButton;
private System.Data.DataSet myDataSet;
private System.Data.DataTable rateTable;
private System.Data.DataColumn dataColumn1;
private System.Data.DataColumn dataColumn2;
private System.Data.DataColumn dataColumn3;
private System.Windows.Forms.Button removeBinding;
private System.Windows.Forms.Button addBinding;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components =
null;

public TestDataGrid()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after
InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not
modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.theGrid = new
System.Windows.Forms.DataGrid();
this.myDataSet = new System.Data.DataSet();
this.rateTable = new System.Data.DataTable();
this.dataColumn1 = new
System.Data.DataColumn();
this.dataColumn2 = new
System.Data.DataColumn();
this.dataColumn3 = new
System.Data.DataColumn();
this.addButton = new
System.Windows.Forms.Button();
this.removeBinding = new
System.Windows.Forms.Button();
this.addBinding = new
System.Windows.Forms.Button();

((System.ComponentModel.ISupportInitialize)(this.t heGrid)).BeginInit();

((System.ComponentModel.ISupportInitialize)(this.m yDataSet)).BeginInit();

((System.ComponentModel.ISupportInitialize)(this.r ateTable)).BeginInit();
this.SuspendLayout();
//
// theGrid
//
this.theGrid.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Win dows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Bottom)
|
System.Windows.Forms.AnchorStyles.Left)
|
System.Windows.Forms.AnchorStyles.Right)));
this.theGrid.DataMember = "RateTable";
this.theGrid.DataSource = this.myDataSet;
this.theGrid.HeaderForeColor =
System.Drawing.SystemColors.ControlText;
this.theGrid.Location = new
System.Drawing.Point(8, 40);
this.theGrid.Name = "theGrid";
this.theGrid.Size = new
System.Drawing.Size(368, 184);
this.theGrid.TabIndex = 0;
//
// myDataSet
//
this.myDataSet.DataSetName = "NewDataSet";
this.myDataSet.Locale = new
System.Globalization.CultureInfo("en-US");
this.myDataSet.Tables.AddRange(new
System.Data.DataTable[] {

this.rateTable});
//
// rateTable
//
this.rateTable.Columns.AddRange(new
System.Data.DataColumn[] {

this.dataColumn1,

this.dataColumn2,

this.dataColumn3});
this.rateTable.TableName = "RateTable";
//
// dataColumn1
//
this.dataColumn1.ColumnName = "ID";
this.dataColumn1.DataType = typeof(int);
//
// dataColumn2
//
this.dataColumn2.ColumnName = "Number";
this.dataColumn2.DataType = typeof(int);
//
// dataColumn3
//
this.dataColumn3.ColumnName = "Price";
this.dataColumn3.DataType = typeof(int);
//
// addButton
//
this.addButton.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.addButton.Location = new
System.Drawing.Point(16, 256);
this.addButton.Name = "addButton";
this.addButton.TabIndex = 1;
this.addButton.Text = "Add Row";
this.addButton.Click += new
System.EventHandler(this.addButton_Click);
//
// removeBinding
//
this.removeBinding.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.removeBinding.Location = new
System.Drawing.Point(136, 256);
this.removeBinding.Name = "removeBinding";
this.removeBinding.Size = new
System.Drawing.Size(104, 23);
this.removeBinding.TabIndex = 3;
this.removeBinding.Text = "Remove Binding";
this.removeBinding.Click += new
System.EventHandler(this.removeBinding_Click);
//
// addBinding
//
this.addBinding.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.addBinding.Location = new
System.Drawing.Point(288, 256);
this.addBinding.Name = "addBinding";
this.addBinding.Size = new
System.Drawing.Size(104, 23);
this.addBinding.TabIndex = 4;
this.addBinding.Text = "Add Binding";
this.addBinding.Click += new
System.EventHandler(this.addBinding_Click);
//
// TestDataGrid
//
this.AutoScaleBaseSize = new
System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(400,
293);
this.Controls.Add(this.addBinding);
this.Controls.Add(this.removeBinding);
this.Controls.Add(this.addButton);
this.Controls.Add(this.theGrid);
this.Name = "TestDataGrid";
this.StartPosition =
System.Windows.Forms.FormStartPosition.CenterScree n;
this.Text = "TestDataGrid";
this.Load += new
System.EventHandler(this.TestDataGrid_Load);

((System.ComponentModel.ISupportInitialize)(this.t heGrid)).EndInit();

((System.ComponentModel.ISupportInitialize)(this.m yDataSet)).EndInit();

((System.ComponentModel.ISupportInitialize)(this.r ateTable)).EndInit();
this.ResumeLayout(false);

}
#endregion

#endregion

/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addButton_Click(object sender,
System.EventArgs e)
{
Random random = new
Random(idCounter);
DataRow row = rateTable.NewRow();
int position = theGrid.CurrentRowIndex + 1;

row[0] = idCounter++;
row[1] = (int)( random.NextDouble() * 100 );
row[2] = (int)( random.NextDouble() * 10 );

rateTable.Rows.InsertAt( row, position );
rateTable.AcceptChanges();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void removeBinding_Click(object sender,
System.EventArgs e)
{
this.theGrid.DataSource = null;
}

/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addBinding_Click(object sender,
System.EventArgs e)
{
this.theGrid.DataMember = "RateTable";
this.theGrid.DataSource = this.myDataSet;
}

/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TestDataGrid_Load(object sender,
System.EventArgs e)
{
int numRows = 5;
DataRow row;

for (int i = 0; i < numRows; i++)
{
row = rateTable.NewRow();
row[0] = i * 1;
row[1] = i * 2;
row[2] = i * 3;

rateTable.Rows.Add( row );
}
}
}
}
Aug 15 '05 #1
5 2723
From your description (I haven't run the code or looked at it closely), the
issue is that even if the new row is added to the middle of the list, it
always shows up in the end.

This is a known bug with the DataView (when you bind to a DataTable, you are
really binding to its DefaultView property which is a DataView). I believe
it should be resolved with the 2.0 framework.

"Dave" <Da**@discussions.microsoft.com> wrote in message
news:38**********************************@microsof t.com...
I tried posting this in the WinForm forum and got no hits so I am
trying it here.

After inserting a new data row to a DataTable that is bound to a
datagrid, I am unable to change data in a row that is after the newly
added row without getting bizarre results.

I have added the full code for the test below. Create a project drop
in the code and run. There is nothing crazy about the code. I used
the designer to add the dataset and to do the binding.

Any help would be appreciated.

Cheers,
Dave
Test #1
======================
1) Click on the row where ID = 1
2) Click "Add Row" button
3) Click on the cell ID = 2 Number = 4
4) Change the number from 4 to 5
5) Move off the row (i.e. hit the down arrow key)
6) Notice there are 2 rows with ID = 2 now
2, 5, 6
2, 4, 6
Test #2
======================
1) Click on the row where ID = 1
2) Click "Add Row" button
3) Click "Remove Binding"
4) Click "Add Binding"
5) Click on the cell ID = 2 Number = 4
6) Change the number from 4 to 5
7) Move off the row (i.e. hit the down arrow key)
8) Notice there are 2 rows with ID = 2 now
2, 5, 6
2, 4, 6

==========================

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

namespace Controls
{
/// <summary>
/// Summary description for TestDataGrid.
/// </summary>
public class TestDataGrid : System.Windows.Forms.Form
{
private int idCounter = 100;

#region Unimportant Window stuff

private System.Windows.Forms.DataGrid theGrid;
private System.Windows.Forms.Button addButton;
private System.Data.DataSet myDataSet;
private System.Data.DataTable rateTable;
private System.Data.DataColumn dataColumn1;
private System.Data.DataColumn dataColumn2;
private System.Data.DataColumn dataColumn3;
private System.Windows.Forms.Button removeBinding;
private System.Windows.Forms.Button addBinding;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components =
null;

public TestDataGrid()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after
InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not
modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.theGrid = new
System.Windows.Forms.DataGrid();
this.myDataSet = new System.Data.DataSet();
this.rateTable = new System.Data.DataTable();
this.dataColumn1 = new
System.Data.DataColumn();
this.dataColumn2 = new
System.Data.DataColumn();
this.dataColumn3 = new
System.Data.DataColumn();
this.addButton = new
System.Windows.Forms.Button();
this.removeBinding = new
System.Windows.Forms.Button();
this.addBinding = new
System.Windows.Forms.Button();

((System.ComponentModel.ISupportInitialize)(this.t heGrid)).BeginInit();

((System.ComponentModel.ISupportInitialize)(this.m yDataSet)).BeginInit();

((System.ComponentModel.ISupportInitialize)(this.r ateTable)).BeginInit();
this.SuspendLayout();
//
// theGrid
//
this.theGrid.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Win dows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Bottom)
|
System.Windows.Forms.AnchorStyles.Left)
|
System.Windows.Forms.AnchorStyles.Right)));
this.theGrid.DataMember = "RateTable";
this.theGrid.DataSource = this.myDataSet;
this.theGrid.HeaderForeColor =
System.Drawing.SystemColors.ControlText;
this.theGrid.Location = new
System.Drawing.Point(8, 40);
this.theGrid.Name = "theGrid";
this.theGrid.Size = new
System.Drawing.Size(368, 184);
this.theGrid.TabIndex = 0;
//
// myDataSet
//
this.myDataSet.DataSetName = "NewDataSet";
this.myDataSet.Locale = new
System.Globalization.CultureInfo("en-US");
this.myDataSet.Tables.AddRange(new
System.Data.DataTable[] {

this.rateTable});
//
// rateTable
//
this.rateTable.Columns.AddRange(new
System.Data.DataColumn[] {

this.dataColumn1,

this.dataColumn2,

this.dataColumn3});
this.rateTable.TableName = "RateTable";
//
// dataColumn1
//
this.dataColumn1.ColumnName = "ID";
this.dataColumn1.DataType = typeof(int);
//
// dataColumn2
//
this.dataColumn2.ColumnName = "Number";
this.dataColumn2.DataType = typeof(int);
//
// dataColumn3
//
this.dataColumn3.ColumnName = "Price";
this.dataColumn3.DataType = typeof(int);
//
// addButton
//
this.addButton.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.addButton.Location = new
System.Drawing.Point(16, 256);
this.addButton.Name = "addButton";
this.addButton.TabIndex = 1;
this.addButton.Text = "Add Row";
this.addButton.Click += new
System.EventHandler(this.addButton_Click);
//
// removeBinding
//
this.removeBinding.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.removeBinding.Location = new
System.Drawing.Point(136, 256);
this.removeBinding.Name = "removeBinding";
this.removeBinding.Size = new
System.Drawing.Size(104, 23);
this.removeBinding.TabIndex = 3;
this.removeBinding.Text = "Remove Binding";
this.removeBinding.Click += new
System.EventHandler(this.removeBinding_Click);
//
// addBinding
//
this.addBinding.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.addBinding.Location = new
System.Drawing.Point(288, 256);
this.addBinding.Name = "addBinding";
this.addBinding.Size = new
System.Drawing.Size(104, 23);
this.addBinding.TabIndex = 4;
this.addBinding.Text = "Add Binding";
this.addBinding.Click += new
System.EventHandler(this.addBinding_Click);
//
// TestDataGrid
//
this.AutoScaleBaseSize = new
System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(400,
293);
this.Controls.Add(this.addBinding);
this.Controls.Add(this.removeBinding);
this.Controls.Add(this.addButton);
this.Controls.Add(this.theGrid);
this.Name = "TestDataGrid";
this.StartPosition =
System.Windows.Forms.FormStartPosition.CenterScree n;
this.Text = "TestDataGrid";
this.Load += new
System.EventHandler(this.TestDataGrid_Load);

((System.ComponentModel.ISupportInitialize)(this.t heGrid)).EndInit();

((System.ComponentModel.ISupportInitialize)(this.m yDataSet)).EndInit();

((System.ComponentModel.ISupportInitialize)(this.r ateTable)).EndInit();
this.ResumeLayout(false);

}
#endregion

#endregion

/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addButton_Click(object sender,
System.EventArgs e)
{
Random random = new
Random(idCounter);
DataRow row = rateTable.NewRow();
int position = theGrid.CurrentRowIndex + 1;

row[0] = idCounter++;
row[1] = (int)( random.NextDouble() * 100 );
row[2] = (int)( random.NextDouble() * 10 );

rateTable.Rows.InsertAt( row, position );
rateTable.AcceptChanges();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void removeBinding_Click(object sender,
System.EventArgs e)
{
this.theGrid.DataSource = null;
}

/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addBinding_Click(object sender,
System.EventArgs e)
{
this.theGrid.DataMember = "RateTable";
this.theGrid.DataSource = this.myDataSet;
}

/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TestDataGrid_Load(object sender,
System.EventArgs e)
{
int numRows = 5;
DataRow row;

for (int i = 0; i < numRows; i++)
{
row = rateTable.NewRow();
row[0] = i * 1;
row[1] = i * 2;
row[2] = i * 3;

rateTable.Rows.Add( row );
}
}
}
}

Aug 15 '05 #2
Dave,

In my opinion do you show us to much code.
The change that you get an answer on this is probably very small.

Try to give the essential part of your problem

In addition, because that you are using C# code you have probably even a
better change on an answer in the newsgroup

microsoft.public.dotnet.languages.csharp

Which does not mean that you cannot get an answer here, however take my
advice make it in a way that we can understand the problem quick.

By instance is it for your problem really not important how the datagrid is
anchored on the form.

I hope this helps,

Cor
Aug 15 '05 #3
Marina,
This is a known bug with the DataView (when you bind to a DataTable,


Do you mean DataGrid, in that case I know it?

Cor
Aug 15 '05 #4
90% of the code is generated by dragging controls on the form.
From addButton_Click down is code that I manually typed, some
20 lines of code altogether.

To the best of my ability there is no possible way of providing a
demo that is smaller.
The barest way to describe the problem is I have
1) Dragged a DataGrid, DataSet, and 3 buttons onto the form
2) Added columns to the DataSet
3) Bound DataSet to DataGrid
4) Double clicked each button "Add Row" "Remove Binding" "Add Binding"
and added appropriate 5-8 lines of code
5) Added default data to Form Load
6) Start App
7) Position cursor on row 1
8) Click "Add Row" Button
9) Modify row after new row and it BLOWS UP

Cheers,
Dave

Cheers,
Dave

"Cor Ligthert [MVP]" wrote:
Dave,

In my opinion do you show us to much code.
The change that you get an answer on this is probably very small.

Try to give the essential part of your problem

In addition, because that you are using C# code you have probably even a
better change on an answer in the newsgroup

microsoft.public.dotnet.languages.csharp

Which does not mean that you cannot get an answer here, however take my
advice make it in a way that we can understand the problem quick.

By instance is it for your problem really not important how the datagrid is
anchored on the form.

I hope this helps,

Cor

Aug 15 '05 #5

You said, "From your description (I haven't run the code or looked at it
closely), the issue is that even if the new row is added to the middle of the
list, it always shows up in the end."

I say: NO. Either a CurrencyManger.Refresh or AcceptChanges will put it in
the correct position. This is not the problem. The problem is after I do
either of these methods above and try to modify a row AFTER the new row that
was added, I get null and duplicat rows and then the app crashes and burns.

Cheers,
Dave

"Marina" wrote:
From your description (I haven't run the code or looked at it closely), the
issue is that even if the new row is added to the middle of the list, it
always shows up in the end.

This is a known bug with the DataView (when you bind to a DataTable, you are
really binding to its DefaultView property which is a DataView). I believe
it should be resolved with the 2.0 framework.

"Dave" <Da**@discussions.microsoft.com> wrote in message
news:38**********************************@microsof t.com...
I tried posting this in the WinForm forum and got no hits so I am
trying it here.

After inserting a new data row to a DataTable that is bound to a
datagrid, I am unable to change data in a row that is after the newly
added row without getting bizarre results.

I have added the full code for the test below. Create a project drop
in the code and run. There is nothing crazy about the code. I used
the designer to add the dataset and to do the binding.

Any help would be appreciated.

Cheers,
Dave
Test #1
======================
1) Click on the row where ID = 1
2) Click "Add Row" button
3) Click on the cell ID = 2 Number = 4
4) Change the number from 4 to 5
5) Move off the row (i.e. hit the down arrow key)
6) Notice there are 2 rows with ID = 2 now
2, 5, 6
2, 4, 6
Test #2
======================
1) Click on the row where ID = 1
2) Click "Add Row" button
3) Click "Remove Binding"
4) Click "Add Binding"
5) Click on the cell ID = 2 Number = 4
6) Change the number from 4 to 5
7) Move off the row (i.e. hit the down arrow key)
8) Notice there are 2 rows with ID = 2 now
2, 5, 6
2, 4, 6

==========================

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

namespace Controls
{
/// <summary>
/// Summary description for TestDataGrid.
/// </summary>
public class TestDataGrid : System.Windows.Forms.Form
{
private int idCounter = 100;

#region Unimportant Window stuff

private System.Windows.Forms.DataGrid theGrid;
private System.Windows.Forms.Button addButton;
private System.Data.DataSet myDataSet;
private System.Data.DataTable rateTable;
private System.Data.DataColumn dataColumn1;
private System.Data.DataColumn dataColumn2;
private System.Data.DataColumn dataColumn3;
private System.Windows.Forms.Button removeBinding;
private System.Windows.Forms.Button addBinding;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components =
null;

public TestDataGrid()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after
InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not
modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.theGrid = new
System.Windows.Forms.DataGrid();
this.myDataSet = new System.Data.DataSet();
this.rateTable = new System.Data.DataTable();
this.dataColumn1 = new
System.Data.DataColumn();
this.dataColumn2 = new
System.Data.DataColumn();
this.dataColumn3 = new
System.Data.DataColumn();
this.addButton = new
System.Windows.Forms.Button();
this.removeBinding = new
System.Windows.Forms.Button();
this.addBinding = new
System.Windows.Forms.Button();

((System.ComponentModel.ISupportInitialize)(this.t heGrid)).BeginInit();

((System.ComponentModel.ISupportInitialize)(this.m yDataSet)).BeginInit();

((System.ComponentModel.ISupportInitialize)(this.r ateTable)).BeginInit();
this.SuspendLayout();
//
// theGrid
//
this.theGrid.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Win dows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Bottom)
|
System.Windows.Forms.AnchorStyles.Left)
|
System.Windows.Forms.AnchorStyles.Right)));
this.theGrid.DataMember = "RateTable";
this.theGrid.DataSource = this.myDataSet;
this.theGrid.HeaderForeColor =
System.Drawing.SystemColors.ControlText;
this.theGrid.Location = new
System.Drawing.Point(8, 40);
this.theGrid.Name = "theGrid";
this.theGrid.Size = new
System.Drawing.Size(368, 184);
this.theGrid.TabIndex = 0;
//
// myDataSet
//
this.myDataSet.DataSetName = "NewDataSet";
this.myDataSet.Locale = new
System.Globalization.CultureInfo("en-US");
this.myDataSet.Tables.AddRange(new
System.Data.DataTable[] {

this.rateTable});
//
// rateTable
//
this.rateTable.Columns.AddRange(new
System.Data.DataColumn[] {

this.dataColumn1,

this.dataColumn2,

this.dataColumn3});
this.rateTable.TableName = "RateTable";
//
// dataColumn1
//
this.dataColumn1.ColumnName = "ID";
this.dataColumn1.DataType = typeof(int);
//
// dataColumn2
//
this.dataColumn2.ColumnName = "Number";
this.dataColumn2.DataType = typeof(int);
//
// dataColumn3
//
this.dataColumn3.ColumnName = "Price";
this.dataColumn3.DataType = typeof(int);
//
// addButton
//
this.addButton.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.addButton.Location = new
System.Drawing.Point(16, 256);
this.addButton.Name = "addButton";
this.addButton.TabIndex = 1;
this.addButton.Text = "Add Row";
this.addButton.Click += new
System.EventHandler(this.addButton_Click);
//
// removeBinding
//
this.removeBinding.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.removeBinding.Location = new
System.Drawing.Point(136, 256);
this.removeBinding.Name = "removeBinding";
this.removeBinding.Size = new
System.Drawing.Size(104, 23);
this.removeBinding.TabIndex = 3;
this.removeBinding.Text = "Remove Binding";
this.removeBinding.Click += new
System.EventHandler(this.removeBinding_Click);
//
// addBinding
//
this.addBinding.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windo ws.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left)));
this.addBinding.Location = new
System.Drawing.Point(288, 256);
this.addBinding.Name = "addBinding";
this.addBinding.Size = new
System.Drawing.Size(104, 23);
this.addBinding.TabIndex = 4;
this.addBinding.Text = "Add Binding";
this.addBinding.Click += new
System.EventHandler(this.addBinding_Click);
//
// TestDataGrid
//
this.AutoScaleBaseSize = new
System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(400,
293);
this.Controls.Add(this.addBinding);
this.Controls.Add(this.removeBinding);
this.Controls.Add(this.addButton);
this.Controls.Add(this.theGrid);
this.Name = "TestDataGrid";
this.StartPosition =
System.Windows.Forms.FormStartPosition.CenterScree n;
this.Text = "TestDataGrid";
this.Load += new
System.EventHandler(this.TestDataGrid_Load);

((System.ComponentModel.ISupportInitialize)(this.t heGrid)).EndInit();

((System.ComponentModel.ISupportInitialize)(this.m yDataSet)).EndInit();

((System.ComponentModel.ISupportInitialize)(this.r ateTable)).EndInit();
this.ResumeLayout(false);

}
#endregion

#endregion

/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addButton_Click(object sender,
System.EventArgs e)
{
Random random = new
Random(idCounter);
DataRow row = rateTable.NewRow();
int position = theGrid.CurrentRowIndex + 1;

row[0] = idCounter++;
row[1] = (int)( random.NextDouble() * 100 );
row[2] = (int)( random.NextDouble() * 10 );

rateTable.Rows.InsertAt( row, position );
rateTable.AcceptChanges();
}

Aug 15 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Frosty | last post: by
reply views Thread by David | last post: by
2 posts views Thread by John Holmes | last post: by
12 posts views Thread by Bishoy George | last post: by
reply views Thread by paulhux174 | last post: by
4 posts views Thread by Abby | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.