|
Did you already close the Stream?
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
You need to close the files after processing and before moving.
|
|
|
|
|
Thanks to both of you Manas and Centriste.
I was not using file.Open(), so I didn't use Close either.
But, I am using a reader and I needed to close that.
Eh.
Thanks again.
|
|
|
|
|
I would to populate a country combo box using a collection. The code for the collection is below:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BUI
{
public class CountryCollection : BUIBaseCollection<Country>
{
public static CountryCollection FetchList()
{
CountryCollection obj = new CountryCollection();
obj.MapObjects(new DAL.Country().FetchList());
return obj;
}
}
}
Fetchlist is a stored procedure that returns all records in a table. My problem is to populate my combo box I am using this code:
this.cmbCountry.ItemsSource = BUI.CountryCollection.FetchList();
and instead of displaying the items in the table, it is displaying:
BUI.Country
BUI.Country
BUI.Country
Thanks
Jonso
|
|
|
|
|
Combobox shows data returned by calling ToString() on class BUI.Country It seams that you haven't overridden ToString() method in your class so class name is returned. Override ToString() in BUI.Country class to return the data you want.
Giorgi Dalakishvili
#region signature
my articles
#endregion
|
|
|
|
|
Another way, you can use the following to specify which column you want to bind.
this.cmbCountry.DisplayMember = "FieldName";
this.cmbCountry.DataSource = BUI.CountryCollection.FetchList();
Where "FieldName" above is the name of the field which stores the list of countries.
Sunny Chen
===============================================
System Analyst, System Architect
Consultant of China System Analyst Institution
http://www.sunnychen.org
===============================================
|
|
|
|
|
Hi
I have a query with the ListBox control. I have two pages on my web app, a main page and a sort page.
The main page contains a table populated with names from a SQL database.
The sort page contains a ListBox with all the names from the main page and 2 buttons, Up and Down.
The user can move the names Up and Down by clicking the name and pressing Up or Down.
Now i would like to know, How can i save the 'sorted' listBox and display that order on the Main Page??
I would greatly appreciate some help.
Many Thanks
PS this is what i have for moving the items UP/Down
protected void Button1_Click(object sender, EventArgs e)
{
int i = lstBox1.SelectedIndex;
string str = lstBox1.SelectedItem.ToString();
if (i > 0)
{
lstBox1.Items.RemoveAt(i);
lstBox1.Items.Insert(i - 1, str);
lstBox1.SelectedIndex = i - 1;
}
}
-------------------
Redcastle CRM
|
|
|
|
|
Sorry forgot to mention, I need to have these 2 pages. Everything one 1 page is not suitable in my case.
Many Thanks
|
|
|
|
|
What you need to do is save this information(of ordering done at Sort Page) in your database.
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
FYI...
Blog link to be reinstated at a later date.
|
|
|
|
|
Hi,
I have a Windows database application that uses MS Access for the database. I decided to embed the database into the application and now can't connect to the mdf file. The connection string I used before I embedded it is:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + APath.Replace("bin\\Release", "") + "\\Database\\Bix.mdb;Jet OLEDB:Database Password=Password;
(APath is Program.AppPath)
Can anybody tell me how I should modify the connection string so that I can connect? I presume that it would be the "Data Source" portion. I've tried looking up the syntax but haven't found anything that works.
Thanks in advance for the assistance.
|
|
|
|
|
Member 2265148 wrote: Windows database application
Member 2265148 wrote: I decided to embed the database into the application
How did you embed that?
Member 2265148 wrote: APath.Replace("bin\\Release", "")
Why this?
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
Manas Bhardwaj wrote: How did you embed that?
In the Solution Explorer, I clicked on the database, then in the Properties pane, chose "Embedded Resource" from the Build Action property.
Manas Bhardwaj wrote: Member 2265148 wrote:
APath.Replace("bin\\Release", "")
Why this?
It replaces the folder structure I use to compile the app with the folder structure that will be in place on the user's computer.
|
|
|
|
|
See, embedding a database builds it into the assembly itself. I am sure you dont wanna do this.
Next, instead of manipulating the path in code, you should use the Post Build Events to copy the database in your output directory.
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
Actually, I really DO want to embed it. I don't want the user to have access to the database other than through the application.
In the current installation, it does copy the database to my output directory. I'd like to have the database part of the assembly.
|
|
|
|
|
The problem seems to be that once the Access database has been embedded, the connection object can't seem to find the database. I'm not sure how to tell it where to look.
In Visual Studio, the .mdb file is sitting in the application root folder. I set the connection string to that file and it works just fine in VS. However, when I install the .exe file onto another computer and don't copy the .mdb file over, the connection object can't find the database.
Once the .mdb file has been embedded into the application, how do I tell the connection object where to look for that file?
Thanks.
Ron
|
|
|
|
|
I found out that if I embed an Access database, I have to take it "out" of its embedded state to retrieve any data, which defeats the purpose of having it embedded.
I'm now looking at embedding SQL Server Compact Edition but am having problems finding many articles about it.
If anybody knows of an article that shows how to embed SQLCE, I'd appreciate it.
Thanks.
Ron
|
|
|
|
|
Hi,
I have this code for looping through the fields in a data table and replace some characters in the fields. I am trying to access the fields in the datatable. Its giving this error :
System.InvalidOperationException: Collection was modified; enumeration operation might not execute.
Could you help me through this, I'd really appreciate it.
foreach (DataRow dr in dtExport.Rows)
{
for (int i = 0; i < dtExport.Columns.Count; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
data = dr[i].ToString();
data = data.Replace("\"", "\"");
RowZ.Add(data.ToString());
}
}
dtExport.Rows.Add(RowZ.ToArray());
}
Let's do this !
modified on Thursday, August 14, 2008 10:27 AM
|
|
|
|
|
You cannot add or remove elements in a collection (in this case dtExport) that you are iterating over.
|
|
|
|
|
This, which comes from a diffrent part of the code works
foreach (DataRow dr in TheDataTable.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
string data = dr[i].ToString();
data = data.Replace("\"","\"");
sw.Write(data);
}
if (i < iColCount - 1)
{
sw.Write(separator);
}
}
sw.Write(sw.NewLine);
}
the diffrence with the other one is that, I want to put the elements back into a datatable, for other processing.
I how do I make the change of the field values, then move the values into a data table again ?
Let's do this !
|
|
|
|
|
Try using a for loop instead of for each. That should solve your problem
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
I changed it to this:
for (int j = 0; j < dtExport.Rows.Count; j++)
{
for (int i = 0; i < dtExport.Columns.Count; i++)
{
if (!Convert.IsDBNull(data = dtExport.Rows[j][i].ToString()))
{
data = dtExport.Rows[j][i].ToString();
data = data.Replace("\"", "\"");
RowZ.Add(data.ToString());
}
}
dtExport.Rows.Add(RowZ.ToArray());
}
but now I get this error System.ArgumentException:input array is longer than the number of columns in the table
Let's do this !
|
|
|
|
|
I don't see any definition for RowZ, does it have more columns than the rows in the dtExport table?
|
|
|
|
|
This is the definition, Arraylist Rowz = new Arraylist () Its an array list
Let's do this !
|
|
|
|
|
Okay, I see. On the second loop you continue to add to the array RowZ, this means that it contains the column values for two rows by the time it gets to the dtExport.Rows.Add method. Since the array has more items in it than columns, the Add method fails as it doesn't know what to do with all that extra data.
At the start of the loop over each row, you need to clear out the array.
RowZ.Clear();
|
|
|
|