|
You're not getting far because your don't have a "list"; you have something you called a list.
And an "empty" list is "not null"; it is just "empty".
List<string> list = new List<string>();
bool isEmpty = (list.Count == 0);
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
I have tried this method, but when writing
List<string> list = new List<string>(); I do not get the option to refer to the class in my other cs file.
Remember, I have two files here: Program.cs and UnitTest1.cs.
This is why this one is so confusing to me.
For example, if I had a ordinary class with normal strings such as:
public class Car
{
private string model;
private string colour;
public Car(string model, string colour)
{
this.model = model;
this.colour = colour;
}
I would just write this in my test:
[TestClass]
public class CarTestClass
{
[TestMethod]
public void TestCar()
{
Car mycar = new Car("Renault", "flame red");
Car myothercar = new Car("Volvo");
string mymodel = mycar.Model;
string mycolour = mycar.Colour;
string myothermodel = myothercar.Model;
string myothercolour = myothercar.Colour;
Assert.AreEqual("Renault", mymodel);
Assert.AreEqual("flame red", mycolour);
Assert.AreEqual("Volvo", myothermodel);
Assert.IsNull(myothercolour);
}
This is the method I am used to, which is why this list is confusing me.
|
|
|
|
|
So far so good, but I am basically coding in blindness at this point.
I got the first test to run.
[TestMethod]
public void Index()
{
List<string> list = new List<string>();
bool isEmpty = (list.Count == 0);
Assert.AreEqual(0, list.Count());
}
The next part of the code that I am going to test is this:
public int Length()
{
return size;
}
Using knowledge from the last test, I am... guessing this how I am supposed to test this part, but I am not sure what to write in Assert.
public void NumberOfObjects()
{
List<int> lenght = new List<int>();
lenght.Count();
}
I have googled and searched on places like Youtube, but I have yet to find a tutorial that talks about conducting unit testing on linked lists.
If you know of any website or tutorial that explains it, then I would be very happy.
|
|
|
|
|
How to code in C# to crate a printdocumentto preview like a filling form with boxes.
Bimal
|
|
|
|
|
You don't: a PrintDocument is not an interactive control, it provides no mechanism for user input.
You could conceivably add code to open a new form to fill in in the PrintDocument, but that really isn't what it's for (and the same code is called for the actual print do it's gonna get messy if you want anything to work properly).
Instead, create a form for the user to input his data, validate it, and store that - then pass it through to the PrintDocument for format for output.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I am using Mysql.data.dll in c# project.
Now I called c++ dll function. But after calling c++ dll function, my sql connection fails.
Error code is
Project.exe Error: 0 : Unable to connect to any of the specified MySQL hosts.
Exception thrown: 'MySql.Data.MySqlClient.MySqlException' in MySql.Data.dll
Help me. How can i solve this issue?
|
|
|
|
|
That's not a "memory crash" or even close - it almost certainly means that your connections string is wrong, in some way.
Use the debugger, and look at exactly what your code is doing - we don't even have access to your code much less when it's running, so there is nothing at all we can do to help.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Thanks for you answer.
But until before call the c++ dll function, the gridview shows data of mysql db.
But if i click button, it calls c++ dll function and mysql connection error(Unable to connect to any of the specified mysql hosts) occurs. So datagrid not show data of database.
|
|
|
|
|
As I said, there is nothing at all we can do about that -0 we have no idea what code you are using, what your DLL method does - and we certainly can't run it under the same conditions as you because we have no access to your data (or any idea how to run your app).
Seriously, break out the debugger and start looking at exactly what is going on.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Doesn't mean that it is the cause; the error message hints that something else may be happening. Show us the code that you use that fails.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
I think you miss-posted.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
You're right
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Doesn't mean that it is the cause; the error message hints that something else may be happening. Show us the code that you use that fails.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
IN c#
static class MyDll
{
[DllImport("mine.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void Test();
}
...
IN mine.dll:
...
extern "C"
__declspec(dllexport)
void Test() {
int a = 5;
}
...
But after i called MyDll.Test(), mysql.data.dll connect exception failed and datagrid not show anything.
|
|
|
|
|
The C# code using the MySQL provider, and your connection string. The code you show is not doing anything database, and will not be the source of the error.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Unless the C function is doing more than was shown here, and is somehow corrupting the .NET process memory.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
..in exactly the MySQL data provider?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
in form constructor
dbConn = new DBConnector();
public DBConnector()
{
server = CommonUtil.server;
port = CommonUtil.port;
database = CommonUtil.database;
uid = CommonUtil.uname;
password = CommonUtil.password;
Initialize();
}
private void Initialize()
{
string connectionString;
connectionString = "SERVER=" + server + ";" + "Port=" + port + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
}
and i call the Test method in form button event function.
|
|
|
|
|
You should not reuse a connection for a form; create and open it when you need one. It is not clear from this code where you open and close the connection, nor where you use it.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Hi,
if calling unmanaged code is the suspect, you should make sure the bridge works correctly by having it pass data in both directions. As an example, use:
IN mine.dll:
...
extern "C"
__declspec(dllexport)
int Square(int a) {
return a*a;
}
Then call it from your C# code and check the return value.
One way to make things fail is by having parts of your process compiled for different architectures, e.g. a 32-bit C DLL and a 64-bit C# main program.
|
|
|
|
|
Thanks for your reply.
I tried to build mine.dll with x86 and x64 and run c# app.
But the result is same.
I think mysql.data.dll is problem.
what about your thought?
|
|
|
|
|
Hi,
if you want effective help, please start providing accurate information, and answers to all questions asked. Answers should be literal, not approximate! I will number my questions to make it easy for you to answer them. I am not promising a solution here, I am inviting you to provide enough information for someone to come up with substantiated suggestions rather than wild guesses as to what is going on.
1. If not present yet, put try/catch around the failing code, and make it show the following information:
1a. the entire exception, using its ToString() method;
1b. the error code (MySqlException has a number of properties!);
1c. the inner exception, again with ToString().
Put all of these in your next message!
2. Show your exact connection string or strings (replace password by asterisks). MySQL is known to be picky!
3. Where did you get your mysql DLL's (exact URL) ? what is their version number?
4. Sketch the history of database connects and disconnects up to the moment the failure occurs.
5. Have you modified any of the MySQL configuration parameters, things such as MaxUserPort and many others?
6. Have you specified timeout values that might be critically low?
7. Did you try calling Square(2)? What was its result when compiled with x86 and with x64.
8. What is your operating system? is it Windows10? is it 64-bit?
9. what is your development system? is it Visual Studio? which version?
10. What is the purpose of your app?
11. What is the purpose of your C++ function, the one that seems to sabotage further database accesses?
12. Is there anywhere in your code a try/catch block where the catch block is empty? i.e. are you swallowing exceptions, hence ignoring problematic situations, which is bound to make it extremely hard to understand what goes wrong??
13. are there any TCP actions involved, other than the MySQL accesses?
14. is there anything strange or peculiar happening before the MySqlException occurs, something you considered irrelevant and forgot to mention so far...?
That is it for now...
|
|
|
|
|
Member 14490964 wrote: I think mysql.data.dll is problem. Not very likely. Post some code to reproduce the issue, and we'll look at it.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
I am trying to build a main system ( web application ) that contain different systems
that provide service for sales , packing and HR dept etc , so i have many users (about one thousand users ) with different page access permissions ( dynamic responsibility that may change at any time )
what is the best design for the responsibility system that can give them the permission to access for some page that developed for them
thx in advance
|
|
|
|
|
Start by looking at how you ar identifying users to your system - most login systems include a "role" facility which allows you to separate things users can do / see from things they can't.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|