|
That's a very loose question. www.pinvoke.net has the p/invoke signatures to call these methods from C#. The MSDN and other sites have examples of the sort of values you pass when you use these methods.
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
Hi All,
I got two txt files that are StreamReader into my program, now i would like to compare those two files line by line, however, the following codes are not working coz it won't loop the first while loop until the second while loop finishes.
StreamReader sr = new StreamReader("c:\\asmx\\Hand_Written_Result.txt");
StreamReader sr1 = new StreamReader("c:\\asmx\\Auto_Generated_Result.txt");
while ((line = sr.ReadLine()) != null)
{
while ((line_1 = sr1.ReadLine()) != null)
{
Assert.AreEqual(line, line_1);
i++;
}
i++;
}
Thanks a lot
|
|
|
|
|
Your approach seems not correct.
You may try this one:
while (sr != sr.EndOfStream || sr1 != sr1.EndOfStream)
{
line = sr.ReadLine();
line_1 = sr1.ReadLine();
if(!String.IsNullOrEmpty(line) && !String.IsNullOrEmpty(line_1))
{
Assert.AreEqual(line, line_1)
}
}
Hope this helps,
Always keep the Murphy Rules in mind!
|
|
|
|
|
|
It appears you don't understand while loops. I recommend reading up on them.
one possible solution is
while(line = sr.ReadLine() != null && line_1 = sr1.ReadLine() != null)
{
]
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
|
Look at the following code
<br />
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();<br />
...<br />
ExcelApp.Quit();<br />
The Excel object is not release after 'Quit()' method(Excel is still in the background process list).I think it is because there is still a reference of the object.
I a windows application,this will be solved when I close the application. But I'm using these code in an asp.net application.Every time they execute,the background process list grows.
Is there any way to relase the object or Is there any code to read excel files without using Microsoft Excel?
|
|
|
|
|
Set it to null first.
Ahsan Ullah
Senior Software Engineer
|
|
|
|
|
|
Thank you for your reply.But I stiil face a problem:
<br />
private void NullAndRelease(object runtimeObject)<br />
{<br />
if (runtimeObject == null)<br />
return;<br />
try<br />
{<br />
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(runtimeObject);<br />
}<br />
finally<br />
{ <br />
runtimeObject = null; <br />
}<br />
}<br />
private void button1_Click(object sender, EventArgs e)<br />
{<br />
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();<br />
object NullParam = System.Reflection.Missing.Value;<br />
Workbook Book = ExcelApp.Workbooks.Open(FileName, 0, true, NullParam, NullParam, NullParam,<br />
true, NullParam, NullParam, false, false, NullParam, false, true, NullParam);<br />
Worksheet Sheet = Book.Worksheets[1] as Worksheet;<br />
Range UsedRange = Sheet.UsedRange;<br />
<br />
Range Cell = null;<br />
int RowCount = UsedRange.Rows.Count;<br />
for (int i = 2; i <= RowCount; i++)<br />
{<br />
Cell = UsedRange.Cells[i, 1] as Microsoft.Office.Interop.Excel.Range;<br />
Cell = UsedRange.Cells[i, 2] as Microsoft.Office.Interop.Excel.Range;<br />
Cell = UsedRange.Cells[i, 3] as Microsoft.Office.Interop.Excel.Range;<br />
Cell = UsedRange.Cells[i, 4] as Microsoft.Office.Interop.Excel.Range;<br />
Cell = UsedRange.Cells[i, 5] as Microsoft.Office.Interop.Excel.Range;<br />
Cell = UsedRange.Cells[i, 6] as Microsoft.Office.Interop.Excel.Range;<br />
NullAndRelease(Cell); <br />
}<br />
NullAndRelease(Cell);<br />
NullAndRelease(UsedRange);<br />
NullAndRelease(Sheet);<br />
if (Book != null)<br />
Book.Close(false, NullParam, false);<br />
NullAndRelease(Book);<br />
ExcelApp.Quit();<br />
NullAndRelease(ExcelApp);<br />
GC.Collect();<br />
GC.WaitForPendingFinalizers(); <br />
}<br />
These code works well.But when I add the following code in the for loop:
<br />
Cell = UsedRange.Cells[i, 7] as Microsoft.Office.Interop.Excel.Range;<br />
The server does not shut down. It seems that I can only read not more than 6 cells.That's why?
|
|
|
|
|
Here is a code piece from Visio Code Librarian:
private void NullAndRelease(object runtimeObject)
{
try
{
if (runtimeObject != null)
{
int referenceCount = System.Runtime.InteropServices.
Marshal.ReleaseComObject(runtimeObject);
while (0 < referenceCount)
{
referenceCount = System.Runtime.InteropServices.
Marshal.ReleaseComObject(runtimeObject);
}
}
}
finally
{
runtimeObject = null;
}
}
I think you can also use this one for Excel too.
Regards,
Always keep the Murphy Rules in mind!
modified on Thursday, August 21, 2008 6:15 AM
|
|
|
|
|
There is no reason to call ReleaseComObject in a loop. Call FinalReleaseCOMObject instead, it sets the ref count directly to zero.
|
|
|
|
|
I am using visual studio 2003(FW 1.1).I filled a combobox using value member and display member from a datasource.when I run my project that combo box is hanging ,ie values are there in combobox but I cant select from that.(values are not populating).Comboboxes are working fine if I add Items using Item.Add() method.Any way to solve this problem as I need to get value member from that.Pls help me ....
with regards
thomas
|
|
|
|
|
Best guess is that your code to get the data from the source is hanging. Have you tried debugging to work out where it gets stuck ?
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
there is no problem while debugging.its a simple code , here it is ...
cmboobx.Datasource=Dataset.Tables[0];
cmboobx.Displaymember=string Display member ;
cmboobx.VauemEMBER=STRING VALUE MEMBER;
this is the code I used.But while running combobox is not hanging.we can select values using scroll in our mouse.But we cant click and select that value.
thank you for your reply friend.
|
|
|
|
|
I don't see how that's possible. You can scroll through the items, but can't select one ? What are you clicking, the items in a drop down list that appears ?
Of course, the code you posted is broken, it would not even compile. what does your code really look like ?
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
sorry ..friend ,
I cant copy and paste code from here.That code is just a sample.
Here is the format
combobox1.DataSource=dataset1.Tables[0];
combobox1.DisplayMember="Name of column to be displayed";
combobox1.ValueMember="Name of column to be added as value";
|
|
|
|
|
Hi all
I facing problem while connecting C# with SQL server 2000
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Test;Data Source="source";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID="source";Use Encryption for Data=False;Tag with column collation when possible=False
in the exception
1. Keyword not suported: 'Provider'
if i remove Provider=SQLOLEDB.1, then exeption is
2. Keyword not suported: 'Use Procedure for Prepare'
and same for Use Encryption for Data=False, Tag with column collation when possible=False.
Plz....... help me!
Thanx in advance.
|
|
|
|
|
Check this.[^]
I Love T-SQL
"Don't torture yourself,let the life to do it for you."
|
|
|
|
|
I'm creating a simple calculator.. so my calculator has only a textbox, it doesnt have any buttons so the user communicates with the calculator using the keyboard... so what i did is to enable the preview key down of the form and on the event of the key down, the computer is able to get the values entered from the keyboard. The problem with key down is that it only works if it has focus on the control or the form... but what i want is that even though the focus is not on the form or lets say the focus is on another application, how do i get my program to still get the keyboard values entered by the user?
|
|
|
|
|
|
yeah cause you know i'm doing like a computation while looking at the values at the other application and dont like doing the short cut keys using alt+tab or keep on clicking the calculator just to enter values. specially if its in full screen mode.
|
|
|
|
|
You have me imagining an applet that's always minimized and displays the calculation its caption.
|
|
|
|
|
Interesting, because I'm envisioning a keylogger.
|
|
|
|
|
I thought that at first, but it seems like a legit concept. I don't like flipping between a calculator and windows all the time.
|
|
|
|