|
Hi,
recursion is not always the way.
*
*
*
**
***
*****
********
If I were to generate and display the following, you will observe that when n= 50, program
hangs. the number of times recursive method gets called grows exponentially.
In such a case a non recursive method is required.
Regards,
NetQuestions
|
|
|
|
|
Indeed, I'm well aware of such. I was only basing my suggestion on the fact it seemed like a homework assignment to create a recursive method.
|
|
|
|
|
I am not an algorithms expert so mine may be wrong and I did cheat for base case but my recursive Fib algorithm is instant. I won't post because it may be the OP's homework but Fib is not hard and does not require any deep recursion. My algorithm needs 98 levels to calculate the Fib numbers from 2 to 100. (Again, I cheated on the base)
|
|
|
|
|
yes, you can easily avoid the exponential behavior, however I have seen quite a few straightforward recursive implementations that don't. They are extremely good examples against the use of recursion for anything that is not recursive by its very nature (such as a hierarchical file system).
|
|
|
|
|
the number of times the method keeps getting called increases exponentially
|
|
|
|
|
NetQuestions wrote: I want to initialize a string array with "*".
string[] a = new string[] { "*" } ;
|
|
|
|
|
I actually used the following statement
string str = new string('*', 10)
|
|
|
|
|
That doesn't meet the stated criteria.
|
|
|
|
|
I have the following code:
SqlConnection con = new SqlConnection("connection details");
con.Open();
string strSql = "select * from Names";
SqlDataAdapter dadapter = new SqlDataAdapter();
dadapter.SelectCommand = new SqlCommand(strSql, con);
DataSet dset = new DataSet();
dadapter.Fill(dset,"Names");
con.Close();
dataGridView1.DataSource = dset.Tables["Names"];
The dset looks as follows:
ID Name
1 Terence
2 Richard
1. How can I get my datagrid to only show the Name and not the ID column?
2. Also if I have a column named First Name in my datafrid how can I get name to show up in that column and not in a new one or how can I assign custom names to my datagrid?
Any help would be great thanks!
|
|
|
|
|
|
Thanks for the info , I need the * as I need the ID for other things. I just dont want the ID to appear in the datagrid...
|
|
|
|
|
Using "*" is considered bad practice.
They only reason why you're seeing the ID in the datagrid is because you're relying on it's automatic features to create the columns for you.
If you created the columns and bound them yourself, you get to pick and chose which columns you see in the grid. You've already been given links to the docs and samples that show this.
|
|
|
|
|
Terence van Schalkwyk wrote: 1. How can I get my datagrid to only show the Name and not the ID column?
Like this:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" >
<Columns>
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" ReadOnly="True" SortExpression="EmployeeID" />
<asp:TemplateField HeaderText="EmployeeID" SortExpression="EmployeeID" Visible="false">
</asp:TemplateField>
Terence van Schalkwyk wrote: 2. Also if I have a column named First Name in my datafrid how can I get name to show up in that column and not in a new one or how can I assign custom names to my datagrid?
Similar logic as above.
Success is the good fortune that comes from aspiration, desperation, perspiration and inspiration.
|
|
|
|
|
I am doing it in C# windows application not in asp. Any idea how to do it?
|
|
|
|
|
Terence van Schalkwyk wrote: string strSql = "select * from Names";
1. You could change your query to fetch only the name.
Terence van Schalkwyk wrote: dataGridView1
2. You could hide the first column inside the datagrid by using the visible property of the column.
dataGridView1.Columns(0).Visible = False
Quidquid latine dictum sit, altum videtur.
Whatever is said in Latin sounds profound.
|
|
|
|
|
Abhinav S wrote: 1. You could change your query to fetch only the name.
Not an option as I might need the id elsewhere
Abhinav S wrote: 2. You could hide the first column inside the datagrid by using the visible property of the column.
dataGridView1.Columns(0).Visible = False
Worked perfectly by doing the following:
dataGridView1.Columns[0].Visible = false; instead of () needed to use [].
Thanks. Now just to name my Columns!
|
|
|
|
|
Solution:
dataGridView1.Columns[0].Visible = false;
dataGridView1.Columns[1].HeaderText = "First Name";
Is this the best way to do it? Any downsides?
|
|
|
|
|
If someone added another column, or insert a column before the firstcolumn, the datagridview will display wrongly. Generally I will define the columns to be displayed and their order, instead of hiding the columns that I do not want to display.
|
|
|
|
|
Define only the columns that you want to display in the datagridview:
this.dataGridView.AutoGenerateColumns = false;
this.dataGridView.Columns.Clear();
this.dataGridView.Columns.AddRange(GetGridViewColumns());
private DataGridViewColumn[] GetGridViewColumns()
{
DataGridViewTextBoxColumn id = new DataGridViewTextBoxColumn();
id .DataPropertyName = "ID";
id .HeaderText = "ID";
id .Name = "ID";
id .SortMode = DataGridViewColumnSortMode.Automatic;
id .ReadOnly = true;
id .Width = 100;
id .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
id .DefaultCellStyle.Format = "";
DataGridViewTextBoxColumn name= new DataGridViewTextBoxColumn();
name.DataPropertyName = "Name";
name.HeaderText = "Name";
name.Name = "Name";
name.SortMode = DataGridViewColumnSortMode.Automatic;
name.ReadOnly = true;
name.Width = 100;
name.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
name.DefaultCellStyle.Format = "";
return new DataGridViewColumn[] { id, name };
}
|
|
|
|
|
Thank you so much this is perfect. Just what I am looking for! Codeproject is such a great community!
|
|
|
|
|
try this after you set the DataSource:
dataGridView1.DataSource = dset.Tables["Names"];
dataGridView1.Columns["ID"].Visible = false;
Hope it could help you.
|
|
|
|
|
Hi...
I am getting NotSupportedException "The given path's format is not supported."
XmlDocumentObject.Save(filename);
filename is "L:PROT", because it contains colon that's why exception is coming.
Is there any alternative to use : in filename which could be saved in XmlDocument?
Thanks in Advance..
Piyush
|
|
|
|
|
There are certain characters and filenames (such as CON or PRN) that you can't use when writing out a file. The : is used as a part of path identification, so is unavailable. You need to remove this colon.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
hi,
System.IO.Path.InvalidPathChars will return a char array contianing the platform specfic characters that cannot be specified in path string.
-> compare your characters against the invalid chars to determinate that your path is valid or not..
greetz
|
|
|
|
|
Hi everyone;
I want to add some information on my print document.
To be precise
I'm printing my DataGridView like this:
private void button5_Click(object sender, EventArgs e)
{
if (SetupThePrinting())
MyPrintDocument.Print();
}
private bool SetupThePrinting()
{
PrintDialog MyPrintDialog = new PrintDialog();
MyPrintDialog.AllowCurrentPage = false;
MyPrintDialog.AllowPrintToFile = false;
MyPrintDialog.AllowSelection = false;
MyPrintDialog.AllowSomePages = false;
MyPrintDialog.PrintToFile = false;
MyPrintDialog.ShowHelp = false;
MyPrintDialog.ShowNetwork = false;
if (MyPrintDialog.ShowDialog() != DialogResult.OK)
return false;
MyPrintDocument.DocumentName = "Customers Report";
MyPrintDocument.PrinterSettings = MyPrintDialog.PrinterSettings;
MyPrintDocument.DefaultPageSettings = MyPrintDialog.PrinterSettings.DefaultPageSettings;
MyPrintDocument.DefaultPageSettings.Margins = new Margins(40, 40, 40, 40);
if (MessageBox.Show("Verilerin sayfaya ortalanmasını istiyor musunuz?", "Baskı Özellikleri - Sayfa Ortalama", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
MyDataGridViewPrinter = new DataGridViewPrinter(dbGridView, MyPrintDocument, true, true, "KASA DÖKÜMÜ\n\nbakiye:"+label17.Text+" gelir:"+label19.Text+" gider:"+label18.Text+"", new Font("Tahoma", 10, FontStyle.Bold, GraphicsUnit.Point), Color.Black, true);
else
MyDataGridViewPrinter = new DataGridViewPrinter(dbGridView, MyPrintDocument, false, true, "KASA DÖKÜMÜ\n\nbakiye:"+label17.Text+" gelir:"+label19.Text+" gider:"+label18.Text+"", new Font("Tahoma", 10, FontStyle.Bold, GraphicsUnit.Point), Color.Black, true);
return true;
}
So, I need to make two changes:
1. I need to add a line to the end of the document to put the information on my label#'s, how to put this line properly ( if possible such as: "The information is" +label7.text+ " format)
2. Because of the number of columns, my document prints 6 pages for a 3-paged information. also uses first 3 pages for first 4 columns, and the last 3 pages for the rest of the columns. Reducing the character size in the print document could be a solution, but I don't know how to do that either.
Can anybody PLEASE help ?
|
|
|
|