|
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();
|
|
|
|
|
Do not put your updating statement within the foreach scope. Try use "for(int i=0;i
|
|
|
|
|
Hi,
I have done that, and also placing the Row.Clear before the rows, but I still get the error: input array is longer than the number of columns in this table error ? Where should I have it ?
for (int j = 0; j < dpExport.Rows.Count; j++)
{
Row.Clear();
for (int i = 0; i < dpExport.Columns.Count; i++)
{
if (!Convert.IsDBNull(dpExport.Rows[j][i].ToString()))
{
data = dpExport.Rows[j][i].ToString();
data = data.Replace("\"", "\"");
Row.Add(data.ToString());
}
}
dtExport.Rows.Add(Row.ToArray());
}
Let's do this !
|
|
|
|
|
OK, now it seems that we cannot update the dpExport within the loop.
Try caching the rows to a local collection and after the loop update all the rows in the cache.
I don't know if this helps.
Sunny Chen
===============================================
System Analyst, System Architect
Consultant of China System Analyst Institution
http://www.sunnychen.org
===============================================
|
|
|
|
|
i am trying to update a mdb file.
i added a new rows to the dataset and now i am trying to update a empty mdb file to the content of the dataset.
i did something but i received an exception:
The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.
my code is:
string connectionString = "provider=Microsoft.JET.OLEDB.4.0; " + "data source =" + Dir;
string commandString = "Select id,name from table";
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(commandString, connectionString);
My_DataSet = new DataSet();
OleDbCommandBuilder cb = new OleDbCommandBuilder(dataAdapter);
dataAdapter.Fill(My_DataSet, "Events");
dataAdapter.Update(My_DataSet, "Events");
|
|
|
|