|
Hello,
Infact I faced the same problem. I think it is recognizing drive type 5 as both CDROM/DVD rom .It is not making any difference between CD and DVD drive.for both drive type is 5.but wait for other GURU's reply
Regards,
nishu
|
|
|
|
|
How to Insert/Read a BLOB Field With DB2 DataBase?
|
|
|
|
|
SQLCommand sql_cmd = null;
//create a table with blob field
sql_cmd.CommandText = "CREATE TABLE blob_sample (image BLOB);";
sql_cmd.ExecuteNonQuery();
byte[] buf = new byte[1024];
//Read an image
FileStream file = new FileStream("debug.bmp", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(file);
resStream.Read(buf, 0, System.Convert.ToInt32(buf.Length));
bw.Write(buf);
bw.Close();
file.Close();
//Insert the image in the database
sql_cmd.CommandText = "INSERT INTO blob_sample (image) VALUES (@image)";
SQLParameter parm1 = new SQLParameter();
parm1.DbType = DbType.Binary;
parm1.ParameterName = "@image";
parm1.Value = (byte[])buf;
sql_cmd.Parameters.Add(parm1);
sql_cmd.ExecuteNonQuery();
|
|
|
|
|
In my application, a few times the XML serializer just crash with exception like:
==================
Message : Timed out waiting for a program to execute. The command being executed was "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\Documents and Settings\SOTEC繝ヲ繝シ繧カ繝シ\Local Settings\Temp\xcul_mqt.cmdline".
at System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine)
at System.CodeDom.Compiler.Executor.ExecWaitWithCapture(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine)
at Microsoft.CSharp.CSharpCodeGenerator.Compile(CompilerParameters options, String compilerDirectory, String compilerExe, String arguments, String& outputFile, Int32& nativeReturnValue, String trueArgs)
at Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames)
at Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources)
at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources)
at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources)
at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, CompilerParameters parameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, CompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
==================
I wonder if any progress on these issues has been made in .NET 3?
|
|
|
|
|
Using MainMenu & ContextMenu to create a semi-transparent menu class. My question is when a menu group is shown it displays a ?shadowed panel? as the palette to display items. Is there any way to catch the draw message from Whoever draws the palette ?
Thanks,
Mike
-- modified at 20:45 Sunday 11th March, 2007
Started out with nothing and still have most of it left!
|
|
|
|
|
is it possible to create an object from a class in a VC++6 DLL from C# and call its member functions?
i know that i can call function from the Dll using Dllimport, but if these functions are member function in a clas ?
Thanks
MiNa
|
|
|
|
|
No, that's not possible. You have two options.
1. Make the VC++ DLL a COM DLL and use Interop to call it as a COM component.
2. Write a C++/CLI wrapper around the VC++ DLL and use the wrapper from C#. This would be the easier approach, IMO.
|
|
|
|
|
Do you have any links or articles that show the creation of C++ wrapper as i dont have any ideas about this stuff.
appreciate your help
MiNa
|
|
|
|
|
Is there a way to find out what reference is keeping alive an object after garbage collection?
|
|
|
|
|
The answer is none, if GC occurs, then it's because there is no reference to an object being kept alive.
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 )
|
|
|
|
|
What if I issue GC.Collect()?
Can I get a list of the remaining objects?
|
|
|
|
|
No becuase even using GC.Collect() doesn't gaurantee collection, just implies that the GC should think about it.
|
|
|
|
|
That's incorrect, GC.Collect forces a collection immediately.
|
|
|
|
|
It won't give you the list of remaining objects, but it will force the GC to cycle through a collection. However, it is almost always a bad idea to call GC.Collect() yourself as it puts an undue burden on both your app and the GC.
Whenever the GC runs, it actually freezes the main thread of your application for the duration of the GC cycle. Making your own calls to GC.Collect() will end up causing more context switches and thread freezing/thawing than would otherwise occur and will actually end up hurting performance.
-----------------------------
In just two days, tomorrow will be yesterday.
|
|
|
|
|
Scott Dorman wrote: It won't give you the list of remaining objects
Since it returns void and accepts no parameters I knew that.
Scott Dorman wrote: Whenever the GC runs, it actually freezes the main thread of your application for the duration of the GC cycle
and I'm clear with that too.
But I use for testing purposes GC.Collect. The question is how can I realize a list
like some memory profilers do? Not as detaliated but just the actual situation of some objects (if they still exists).
I don't know how too explain more clearly. Anyway I'm playing with a memory profiler to see the allocations/gc's.
|
|
|
|
|
Zoltan Balazs wrote: But I use for testing purposes GC.Collect. The question is how can I realize a list
like some memory profilers do? Not as detaliated but just the actual situation of some objects (if they still exists).
I don't know how too explain more clearly. Anyway I'm playing with a memory profiler to see the allocations/gc's.
I think using the memory profiler or looking at the various .NET related performance counters will be your best bet. I'm not sure how you would actually accomplish what you are after...obviously there is a way as the profilers are able to do it, but it is certainly not a trivial task.
-----------------------------
In just two days, tomorrow will be yesterday.
|
|
|
|
|
Zoltan Balazs wrote: Is there a way to find out what reference is keeping alive an object after garbage collection?
Not really.
Do you think that you have an object that is not collected? How have you come to this conclusion then?
Do you think that there is a reference somewhere? It doesn't have to be a reference that keeps an object from being collected. Perhaps the garbage collector just didn't collect the specific heap generation that contains the object.
If it's a large object (>85 kiB), it's allocated in the large objects heap. that heap never shrinks, even if the objects in it are collected. If you are monitoring memory usage, you won't see a direct change.
If the object has a finalizer, it will survive at least the first garbage collection, as the object has to be finalized before it can be collected.
---
single minded; short sighted; long gone;
|
|
|
|
|
Guffa wrote: Do you think that you have an object that is not collected?
Yes.
Guffa wrote: How have you come to this conclusion then?
I have an application in .Net 1.1. and reading through some articles regarding weak delegates
(like this one "Observable property pattern"[^]. I also did a couple of test in my app and there were indeed leaks.
However there is something that I don't understand: I'm using a class for representing a standard window to the user when there is something long going on. This class is instantiated in other classes and disposed after it is used. However the memory profiler shows that I have 15 live instances since last GC, but not as much instances of the class that creates it. So I think I have a problem somewhere.
|
|
|
|
|
Guffa wrote:
Do you think that you have an object that is not collected? How have you come to this conclusion then?
Just to complete this thread (and maybe somebody will find this helpful):
- yes there was a memory leak
- I was using a freely available component (VisualStyles linkety[^]) for enabling themes. As it turns out using it prevented all forms that had some reference to it from being fully disposed and garbage collected.
- I downloaded a trial of .Net memory profiler linkety[^] to observe allocations and garbage collections. A nice tool by the way!
Sadly the latest version of the VisualStyles component has the same side effects. I guess I have to remove it from my project.
|
|
|
|
|
I need to assign loop variable value to GroupList Footer member
in foreach loop.
I tried code above but got error
Cannot modify the return value of
'System.Collections.Generic.List<mynsp.reportband.group>.this[int]' because it is not a variable
How to fix this error ?
using System.Collections.Generic;
static class Program {
static void Main() {
}
}
public class ReportBandEntity { public int objcode, foo,bar; };
public class ReportBand {
public List<ReportBandEntity> EntityList;
public struct Group {
public ReportBandEntity Header, Footer;
}
public List<Group> GroupList;
public void GetGroupList() {
GroupList = new List<Group>();
foreach (ReportBandEntity e in EntityList)
if (e.objcode == 1) {
Group g = new Group();
g.Header = e;
GroupList.Add(g);
}
int i = 0;
foreach (ReportBandEntity e in EntityList)
if (e.objcode == 2) {
GroupList[i++].Footer = e;
}
}
}
Andrus
|
|
|
|
|
Your problem is because GroupList happens to hold struct s, instead of class es. The reason why the compiler refuses to compile is because
<br />
GroupList[i++]<br />
returns a copy of the actual struct, because structs happen to be value types. And the assignment of e to the Footer property would happen on the copy and not on the original structure in the list. To solve the problem, you can explicitly modify the copy and put it back in the list. Something like
Group x = GroupList[i];
x.Footer = e;
GroupList[i] = x;
|
|
|
|
|
Soon as I do reflection on an Assembly in a seperate AppDomin. It would appear that it gets pulled into the currentDomain. Does anyone know how i can avoid this?
Basically i just want a list of Types from an Assembly operating in my secondary domain.
Anyone any suggestions?
Rich
|
|
|
|
|
Well, to process the Type instances in the other assembly, your current AppDomain would need to load the assembly anyway. Your best bet is to use standard data types (like strings) to represent the types.
|
|
|
|
|
Hello,
Did I miss something to setup in the following code snippet in order the binding to work correctly with the IDENTITY Column ID? When I try to edit the title field, the grid does not display the next IDENTITY value in the read-only column ID.
Any help appreciated
public partial class frmExpensesList : Form
{
SqlConnection sqlConn;
SqlDataAdapter sqlAdapter;
BindingSource bind;
SqlCommandBuilder sqlCmd;
DataTable tbl;
public frmExpensesList()
{
InitializeComponent();
}
private void frmExpensesList_Load(object sender, EventArgs e)
{
sqlConn = new SqlConnection();
sqlConn.ConnectionString = "Integrated Security=true;" +
"Initial Catalog=Expenses;" +
"Data Source=(local);";
string selCmd = "SELECT ID, Title FROM tblExpenseGroup";
try
{
sqlConn.Open();
sqlAdapter = new SqlDataAdapter(selCmd, sqlConn);
sqlCmd = new SqlCommandBuilder(sqlAdapter);
tbl = new DataTable();
tbl.Locale = System.Globalization.CultureInfo.InvariantCulture;
sqlAdapter.Fill(tbl);
bind = new BindingSource();
bind.DataSource = tbl;
groupsGrid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
groupsGrid.DataSource = bind;
groupsGrid.Columns[0].ReadOnly = true;
}
catch (SqlException s)
{
MessageBox.Show(s.Message);
}
finally
{
sqlConn.Close();
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
Close();
}
}
|
|
|
|
|
For those having the same problem:
After defining the columns, and setting the IDENTITY column property "AutoIncrement" to true all worked out!
|
|
|
|