[Mono-dev] Adding data to a dataset question

Paul F. Johnson paul at all-the-johnsons.co.uk
Wed Aug 10 08:03:18 EDT 2005


Hi,

I'm trying to add multiple lines to a dataset but keep hitting the same
problem. Now, I can get around the problem, but I'm not happy with how I have
to do it.

The code looks like this

		private void FillDataSet()
		{
			// create a new DataTable in the DataSet
			dsSource.Tables.Add("sites");
			dsSource.Tables["sites"].Columns.Add("url", Type.GetType("System.String"));
			dsSource.Tables["sites"].Columns.Add("name",
Type.GetType("System.String"));
			
			// create a few rows and add them to the DataTable
			DataRow tempRow = dsSource.Tables["sites"].NewRow();
			tempRow["url"] = "http://www.gotmono.com";
			tempRow["name"] = "Mono community page";
			dsSource.Tables["sites"].Rows.Add(tempRow);
			
			tempRow["url"] = "http://www.go-mono.com/tutorial";
			tempRow["name"] = "The Mono handbook";
			dsSource.Tables["sites"].Rows.Add(tempRow);
			
			tempRow["url"] = "http://www.go-mono.com";
			tempRow["name"] = "The main Mono website";
			dsSource.Tables["sites"].Rows.Add(tempRow);
			
		        tempRow["url"] =
"http://www.nullenvoid.com/mono/wiki/index.php/WineSamples";
			tempRow["name"] = "Mono WineSamples";
			dsSource.Tables["sites"].Rows.Add(tempRow);
		}
		
		private void BindControls()
		{
			// Bind the listBox
			listBox1.DataSource = dsSource.Tables["sites"];
			listBox1.DisplayMember = "name";
			listBox1.ValueMember = "url";
			
			// Bind the combobox
			comboBox1.DataSource = dsSource.Tables["sites"];
			comboBox1.DisplayMember = "name";
			comboBox1.ValueMember = "url";
			
			// Bind the DataGrid to the DataSet
			dataGrid.DataSource = dsSource;
			
			// Bind the second DataGrid to the DataSet
			dataGrid2.DataSource = dsSource.Tables["sites"];
			
			// Bind the Textboxes to the selected row
			textBox.DataBindings.Add("text", dsSource.Tables["sites"], "name");
			textBox2.DataBindings.Add("text", dsSource.Tables["sites"], "url");
		}

Clearly, the problem is coming from using temp constantly in the setting of
the data (if I comment out all but the first dataadd set, the program works
correctly-ish). The solution looks to be use an array of temps to add the
data.

If the dataset type was an int, I could say ds.AutoIncrement (according to
MSDN).

Is there a way to reuse temp or is the problem in that when the data is added,
the row counter is not incremented and so I'm trying to overwrite the same
data time and again?

TTFN

Paul
-- 
"Logic, my dear Zoe, is merely the ability to be wrong with authority" - Dr
Who





More information about the Mono-devel-list mailing list