|
The answer to two is that there is no answer, unless we first assume that c1 -> c2 -> c3. There is no way to inherit from more than one class in C#.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
|
1.dynamic polymorphism is late binding
If you have same methods in base and derived class
then consider the situation
You are trying to create the object
Base objBase = new Derived();
objBase.Method();
will invoke the base class' method otherwise you declared it as virtual..
The method to be invoked is clear only at running................
2. we dont have multiple polymorphism in c#, for that you can use interface.
My small attempt...
|
|
|
|
|
I get the following when trying to build a tree from the following code:
The action being performed on this control is being called from the wrong thread.
I thought I was using the correct BeginInvoke. Thanks for any help!
private void main()
{
...
SetRunCollectionTree srct = new SetRunCollectionTree(this.RunCollectionTree);
srct.BeginInvoke(null, null);
}
public delegate void SetRunCollectionTree();
public void RunCollectionTree()
{
try
{
this.collectionTree.BuildTree();
}
catch(System.Exception e)
{
MessageBox.Show(e.Message);
}
}
RABB17
"Nothing fancy needed, please just solve all our problems as quickly as possible."
|
|
|
|
|
In Vs2005 dotnet2.0 it is not permitted to access a form control from a different thread then the owner thread. You must use a callback to do this.
See
http://support.microsoft.com/kb/318604[^]
mdv113
|
|
|
|
|
Hi all,
i have a darabase in access i wanna edit a column in a table. my coding has no errors. also the dataset gets updated with the change but the real table doesn't get updated .
this is my coding.
OleDbConnection OLEDBcon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\WmsFoodCityPerformance.mdb" +
";Jet OLEDB:Database Password=sanuja");
OLEDBcon.Open();
string sel = "SELECT * FROM CON_AKU";
OleDbDataAdapter OLEDBda = new OleDbDataAdapter();
try
{
OleDbCommand OLEDBselcom = new OleDbCommand(sel, OLEDBcon);
OLEDBda.SelectCommand = OLEDBselcom;
}
catch
{
}
finally
{
DataSet ds = new DataSet();
OLEDBda.Fill(ds);
DataTable dt = new DataTable();
dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
dr.BeginEdit();
dr["BGT_JUN"] = 0;
dr.EndEdit();
dr.AcceptChanges();
dt.AcceptChanges();
}
OLEDBda.Update(ds);
MessageBox.Show("Done");
dataGridView1.DataSource = ds.Tables[0];
}
}
please help
Regards
Ruwandi
rkherath
|
|
|
|
|
i think u need to set the update command of dataadapter with proper parameters
if u want to to update DB with Data Adapters Update method.
rahul
|
|
|
|
|
Hi,
yes i did just now. it works. but i have 36 fields to update.
OleDbCommand upcom = new OleDbCommand();
upcom.CommandText = "UPDATE CON_AKU SET BGT_JUN" + dr["BGT_JUN"];
upcom.Connection = OLEDBcon;
upcom.ExecuteNonQuery();
so i wanna know if i can set the value in the data table row by row and update the entire row at once. please let me know if there is a way. also i found a nother way from a site. but even that doesn't work out.
this is the coding
void oledbConnection(string path,string CONstr)
{
OleDbTransaction trans;
OleDbCommand OLEDBSelectCom = new OleDbCommand();
OleDbCommand OLEDBupdateCom = new OleDbCommand();
OleDbConnection OLEDBcon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\WmsFoodCityPerforman"+
"ce.mdb;Jet OLEDB:Database Password=sanuja");
OLEDBcon.Open();
trans = OLEDBcon.BeginTransaction();
OleDbDataAdapter OLEDBda = new OleDbDataAdapter();
OLEDBSelectCom.Transaction = trans;
OLEDBSelectCom.CommandText = "Select * from CON_" + CONstr;
OLEDBupdateCom.Connection = OLEDBcon;
OLEDBSelectCom.Connection = OLEDBcon;
DataSet ds = new DataSet();
OLEDBda.SelectCommand = OLEDBSelectCom;
OLEDBda.UpdateCommand = OLEDBupdateCom;
OLEDBda.Fill(ds);
DataTable dt = new DataTable();
dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
//OLEDBupdateCom.CommandText = "update CON_" + CONstr + " set NET_APR=0.0";
dr["BGT_APR"] = 0;
dr["BGT_JUN"] = 0;
dr["BGT_JUL"] = 0;
dr["BGT_AUG"] = 0;
dr["BGT_SEP"] = 0;
dr["BGT_OCT"] = 0;
dr["BGT_NOV"] = 0;
dr["BGT_DEC"] = 0;
dr["BGT_JAN"] = 0;
dr["BGT_FEB"] = 0;
dr["BGT_MAR"] = 0;
dr["BUDGETED"] = 0;
dr["BUDGET_PES"] = 0;
dr["LYNET_APR"] = dr["NET_APR"];
dr["LYNET_JUN"] = dr["NET_JUN"];
dr["LYNET_JUL"] = dr["NET_JUL"];
dr["LYNET_AUG"] = dr["NET_AUG"];
dr["LYNET_SEP"] = dr["NET_SEP"];
dr["LYNET_OCT"] = dr["NET_OCT"];
dr["LYNET_NOV"] = dr["NET_NOV"];
dr["LYNET_DEC"] = dr["NET_DEC"];
dr["LYNET_JAN"] = dr["NET_JAN"];
dr["LYNET_FEB"] = dr["NET_FEB"];
dr["LYNET_MAR"] = dr["NET_MAR"];
dr["NET_APR"] = 0;
dr["NET_JUN"] = 0;
dr["NET_JUL"] = 0;
dr["NET_AUG"] = 0;
dr["NET_SEP"] = 0;
dr["NET_OCT"] = 0;
dr["NET_NOV"] = 0;
dr["NET_DEC"] = 0;
dr["NET_JAN"] = 0;
dr["NET_FEB"] = 0;
dr["NET_MAR"] = 0;
dr["LYADJ_APR"] = dr["ADJ_APR"];
dr["LYADJ_JUN"] = dr["ADJ_JUN"];
dr["LYADJ_JUL"] = dr["ADJ_JUL"];
dr["LYADJ_AUG"] = dr["ADJ_AUG"];
dr["LYADJ_SEP"] = dr["ADJ_SEP"];
dr["LYADJ_OCT"] = dr["ADJ_OCT"];
dr["LYADJ_NOV"] = dr["ADJ_NOV"];
dr["LYADJ_DEC"] = dr["ADJ_DEC"];
dr["LYADJ_JAN"] = dr["ADJ_JAN"];
dr["LYADJ_FEB"] = dr["ADJ_FEB"];
dr["LYADJ_MAR"] = dr["ADJ_MAR"];
dr["LYADJ_APR"] = 0;
dr["LYADJ_JUN"] = 0;
dr["LYADJ_JUL"] = 0;
dr["LYADJ_AUG"] = 0;
dr["LYADJ_SEP"] = 0;
dr["LYADJ_OCT"] = 0;
dr["LYADJ_NOV"] = 0;
dr["LYADJ_DEC"] = 0;
dr["LYADJ_JAN"] = 0;
dr["LYADJ_FEB"] = 0;
dr["LYADJ_MAR"] = 0;
dr.AcceptChanges();
//OLEDBupdateCom.ExecuteNonQuery();
}
dt.AcceptChanges();
OLEDBda.Update(ds);
trans.Commit();
// dataGridView1.DataSource = ds.Tables[0];
OLEDBcon.Close();
//ds.GetChanges();
//OLEDBupdateCom.CommandText="update CON_"+CONstr+" set
}
rkherath
|
|
|
|
|
I want to dispose my previous form on the after select event of tree view control but when i try to do so i get the following exception message
System.ObjectDisposedException: Cannot access a disposed object named "TreeView".
Object name: "TreeView".
I m building Windows application In C# 2003.Thanx for Ur help
|
|
|
|
|
Sounds like you're disposing too soon. Can we see some code ?
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
private void TreeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
switch(name)
{
case "1":
{
Form3 f=new Form3();
f.Show();
this.close();
break;
}
}
}
My code is like this. I am opening new form and disposing the current form.
|
|
|
|
|
Hello,
If 'this' is the main form, you are not able to Close (Dispose) without ending the Application.
All the best,
Martin
|
|
|
|
|
"this" is not my main form. i know i cant close my main form. This is just another form which i want to close.
|
|
|
|
|
Hello,
Is the some other code executed after the switch case statement?
Try to debug!
All the best,
Martin
|
|
|
|
|
OK, this can't work. You're opening an instance of Form3 ( please tell me it's not called that ). But, that instance exists as a child of the current form. So, when you close the current form, the Form3 instance, as a child, will also be disposed of.
The Show() method should only be used to show a form that is a member variable, otherwise you lose all references to it.
Your best bet here is to make Form3 and this form user controls and show them both on teh one form, just hide the one you don't want.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
Hello Christian!
I also had this in mind, but made a little test application, which works well for me.
Christian Graus wrote: So, when you close the current form, the Form3 instance, as a child, will also be disposed
I don't think it's a child Form per default!
I assume there is some other code executed on Form2 after the Close call.
All the best,
Martin
|
|
|
|
|
Hello,
I am working on a quick file browser project. i need to find a way to split a path:
(c:/somedir/somefile.txt)
into a string array:
[0] c
[1] somedir
[2] somefile.txt
is there any built in functionality to do this in c#? if not, does anybody know of any way that i can do this? Thank you very much for any help that you might be able to give, it will be much appreciated.
thanks, Andrew.
|
|
|
|
|
u can try
string path ="c:/somedir/somefile.txt";
string[] var = path.Split('/');
this will give array of strings in variable var
var[0]=c:
var[1]=somedir
var[2]=somefile.txt
rahul
|
|
|
|
|
Much easier
add
using System.IO;
to the top of your file
Then you can use
<br />
string strFile = @"c:\file\file.txt";<br />
string strTemp = Path.GetFileName(strFile);
strTemp = Path.GetDirectoryName(strFile);
strTemp = Path.GetPathRoot(strFile);
Problem with the earlier suggestion is that it won't help with more than a single directory - you can't gaurantee that item 3 in the array will be the filename every time, because one more layer such as
c:\somedir\somsubdir\somefile.txt
will force the filename into the 4th spot - at least using Path functions you can always get the Drive, Actual Directory and Actual file....
After that you can put them into an array
Mark.
-- modified at 0:03 Wednesday 18th April, 2007
|
|
|
|
|
Mark Greenwood wrote: you can't gaurantee that item 3 in the array will be the filename every
No, but you can use the array length to work that out, and you can move one step at a time, too. I'd use the System.IO methods, having said that. They are just more self documenting.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
Hi, u can use the split method of the string and pass the "/" as the parameter, this will return u an array as u wish to have...
Thanks & Regards,
Pramod
"Everyone is a genius at least once a year"
|
|
|
|
|
Everybody can show me the way can add a Form to TabControl in other form in C#.NET 2005? I'm a beginner. Thank you very much!
|
|
|
|
|
Maybe you meant that you want to add a tab panel?
Just find propety 'TabPages' in properties list. Click the button '...' beside, and then add more taps in dialog tabpage collections editor.
Have funs.
LC
|
|
|
|
|
Thanks your answer. But I designed a window form and now I creat a new window form has a TabControl. And I want to add fist form to this TabControl. How do I make its? Thanks!
-- modified at 23:24 Tuesday 17th April, 2007
|
|
|
|
|
Hello,
This is just not possible.
You can add a TpPage to the TabPages property of the TabControl (As someone said before).
Instead of your self designed Form you should design a UserControl and add this on one of the TabPages.
All the best,
Martin
|
|
|
|