|
Tony Pazzard wrote: lines of code
What's
a
line
of
code?
|
|
|
|
|
PIEBALDconsult wrote: What's a line of code?
a comment or a statement, except when that would exceed reasonable width and needs to be chopped.
Most people prefer spaces over newlines for separators ...
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Oh,
a
statement
is
a
line
of
code
?
|
|
|
|
|
I'm sorry, at the moment your sentence can't be all displayed at once, so I can't provide a substantive reply to it. I'm still saving for that skyscraping monitor, and looking for a tall spot to put it.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Tony Pazzard wrote: class with over 8000 lines of code.
Ideally, this should not have been the case.
As a basic pattern a class should be decoupled and cohesive - thus probably making it smaller (than 8000 lines).
However, I suppose there are exceptions to this.
|
|
|
|
|
Hm, we have some even bigger classes, e.g. that one just opened in my Visual Studio has 12230 lines. It was really nice to work through such long classes in last year's i18n project...
|
|
|
|
|
How long is a public key supposed to be?
I look at some code that someone else wrote, in AssemblyInfo, in an InternalsVisibleTo attribute and notice the key is really long.
I use sn.exe, create a strongly typed name, reference it in a project, compile, and use
sn -T <filename> and get a short key like 16 characters or so.
|
|
|
|
|
|
Hi guys,
I develop a csharp smart device application
In order to establish a TCP/IP connection to my .mdf database,I use the above connection string:
string sConnection = "Provider=SQLOLEDB;Data Source=127.0.0.1,7438;Persist Security Info=True;Network Library=dbmssocn;Initial Catalog=GMAO;User ID=sa;Password=sa";
where the Data source is the @of my server that I found due the netstat -an command:
C:\Users\Admin>netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:7 0.0.0.0:0 LISTENING
TCP 0.0.0.0:9 0.0.0.0:0 LISTENING
TCP 0.0.0.0:13 0.0.0.0:0 LISTENING
TCP 0.0.0.0:17 0.0.0.0:0 LISTENING
TCP 0.0.0.0:19 0.0.0.0:0 LISTENING
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:515 0.0.0.0:0 LISTENING
TCP 0.0.0.0:990 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2103 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2105 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2107 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2383 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49155 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49156 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49159 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49160 0.0.0.0:0 LISTENING
TCP 0.0.0.0:54667 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1801 0.0.0.0:0 LISTENING
TCP 127.0.0.1:5679 0.0.0.0:0 LISTENING
TCP 127.0.0.1:7438 0.0.0.0:0 LISTENING
TCP 127.0.0.1:49172 127.0.0.1:49173 ESTABLISHE
TCP 127.0.0.1:49173 127.0.0.1:49172 ESTABLISHE
TCP 127.0.0.1:49185 127.0.0.1:49186 ESTABLISHE
TCP 127.0.0.1:49186 127.0.0.1:49185 ESTABLISHE
TCP 192.168.1.5:139 0.0.0.0:0 LISTENING
TCP 192.168.1.5:50303 69.63.190.10:80 TIME_WAIT
TCP 192.168.1.5:50309 92.122.217.40:80 TIME_WAIT
TCP 192.168.1.5:50317 65.54.166.122:80 ESTABLISHE
TCP 192.168.1.5:50321 64.4.30.89:80 ESTABLISHE
TCP 192.168.1.5:50322 65.54.166.122:80 ESTABLISHE
TCP 192.168.1.5:50324 65.54.166.122:80 ESTABLISHE
TCP 192.168.1.5:50327 69.63.176.193:80 ESTABLISHE
TCP [::]:7 [::]:0 LISTENING
TCP [::]:9 [::]:0 LISTENING
TCP [::]:13 [::]:0 LISTENING
TCP [::]:17 [::]:0 LISTENING
TCP [::]:19 [::]:0 LISTENING
TCP [::]:80 [::]:0 LISTENING
TCP [::]:135 [::]:0 LISTENING
TCP [::]:445 [::]:0 LISTENING
TCP [::]:515 [::]:0 LISTENING
TCP [::]:990 [::]:0 LISTENING
TCP [::]:1433 [::]:0 LISTENING
TCP [::]:2103 [::]:0 LISTENING
TCP [::]:2105 [::]:0 LISTENING
TCP [::]:2107 [::]:0 LISTENING
TCP [::]:2383 [::]:0 LISTENING
TCP [::]:49152 [::]:0 LISTENING
TCP [::]:49153 [::]:0 LISTENING
TCP [::]:49154 [::]:0 LISTENING
TCP [::]:49155 [::]:0 LISTENING
TCP [::]:49156 [::]:0 LISTENING
TCP [::]:49159 [::]:0 LISTENING
TCP [::]:49160 [::]:0 LISTENING
TCP [::]:54667 [::]:0 LISTENING
TCP [::1]:1434 [::]:0 LISTENING
TCP [::1]:1801 [::]:0 LISTENING
TCP [::1]:5679 [::]:0 LISTENING
In fact,the sql server listens to port 1433 but i don't found this in the command.
Also when running my program,this error annoys me:
Unknown connection option in connection string: provider.
what is the problem???
I found the connectionstring format in this link http://support.microsoft.com/kb/287932/[^] in order to depass the error :"Specified sql server not found or access denied"
Thank u for u clarification
|
|
|
|
|
Are you using SqlConnection? In that case you do not need to give "provider".
If you are getting access denied errors, check if the server allows remote connections using TCP/IP and Server browser service is running. Also check if the provided credentials have access to the server.
|
|
|
|
|
Hi,
I use sqlConnection because I need to connect to .mdf database in a smart device application.The server is local and allows TCP/IP connection.The server browser is running.
U last sentence "Also check if the provided credentials have access to the server.",I don't understand it
Thanks
|
|
|
|
|
Is that an attached DB file? Take a look at this[^] page. It shows all the options you have with SqlConnection.
|
|
|
|
|
Hi,
Do u mean by attach database file by:join the database file to database field in sql server?If this,I do it.
My code is below:
private void Form6_Load(object sender, EventArgs e)
{
string sConnection = "Data Source=127.0.0.1,1433;Persist Security Info=True;Initial Catalog=GMAO;User ID=sa;Password=sa";
string sSQL = "SELECT [M-MO] FROM Marge; ";
SqlConnection conn = new SqlConnection(sConnection);
SqlCommand comm = new SqlCommand(sSQL, conn);
SqlDataReader dr = null;
try
{
comm.Connection.Open();
dr = comm.ExecuteReader();
while (dr.Read())
comboBox1.Items.Add(dr[0]);
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
return;
}
dr.Close();
comm.Connection.Close();
}
If the program connects to the server,it will fill the combobox with data of the select statement.
But,the error"Specified sql server not found or access denied lets me cry.
Thanks
|
|
|
|
|
Hi,
Thanks I depass the problem of the connexion to the server due to the DB File attachmen
Still now the problem in the filling of my combobox.In fact,no exception appears so connection to server works well.In other hand,nothing is added to my combobox.
I try to replace my sqldatareader by sqldataset but still the same thing:
string sConnection = "Data Source=127.0.0.1,1433;Persist Security Info=True;Initial Catalog=GMAO;User ID=sa;Password=sa";
string sSQL = "SELECT com FROM energie; ";
SqlConnection conn = new SqlConnection(sConnection);
SqlCommand comm = new SqlCommand(sSQL, conn);
DataSet ds = new DataSet();
SqlCeDataAdapter da = new SqlCeDataAdapter();
SqlDataReader dr = null;
try
{
comm.Connection.Open();
da.Fill(ds, "SQL Temp Table");
foreach(DataRow d in ds.Tables[0].Rows)
comboBox1.Items.Add(d.ToString());
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
return;
}
dr.Close();
comm.Connection.Close();
}
How do I depass that???
Thank u
|
|
|
|
|
First, did you notice that when you wrote the connection string, you used a comma to identify the port instead of a colon?
Data Source=127.0.0.1,7438
Also, are you sure the SQL Server isn't listening on port 1434 or that it is running? If SQL server is listening on port 1433, then you need to use the port it's listening on.
|
|
|
|
|
|
Hi All,
I am a newbie for C# currently working on a porting project.
I need to port and use a VC++ (6.0) MFC extesion DLL methods in C# (8.0) application.
To do that,
I created a managed wrapper dll (MFC Regular DLL shared with /CLR turned ON) from C# and referred the MFC extension DLL from it.
But when i call the interface function written in the wrapper DLL from the C# application, I am getting the below error.
"Unable to load DLL 'TestWrapper.dll': Invalid access to memory location. (Exception from HRESULT: 0x800703E6)"
This error occurs only when i add the MFC extension DLL as the dependency to the wrapper dll.
If the remove that dependency 'TestWrapper.dll' loads successfully.
Note: All DLLs and C# application is in the same path. Problem happens in Windows XP SP3.
Any help is appreciated.
Thanks in advance.
Selva
|
|
|
|
|
native code DLLs are located by Windows searching the folders listed in the PATH environment variable. Unless PATH contains a simple "." entry, putting the native DLL in your EXE's folder is insufficient.
FWIW: when the native DLL calls on other DLLs, the same rules apply, and whatever DLL isn't found the error message will always be the same.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Hi Luc,
Thanks for you reply.
But my problem was a little different.
I had a few thread local variable declarations in the MFC DLL which caused
problem while loading at runtime.
Now working on it to change the implementation of the variable.
Thanks again.
Selva
|
|
|
|
|
I want to pass an argument to a foreach loop. This to specify the foreach loop to loop through a collection in a specific way. See this code:
foreach (DataType instance in collection(argument))
{
}
This is my test program:
class Program
{
static void Main(string[] args)
{
Cells cells = new Cells();
foreach (Cell cell in cells)
{
Console.WriteLine(cell.Value);
}
}
}
public class Cell
{
private string column;
private int row;
private string value;
public Cell(string column, int row, string value)
{
this.column = column;
this.row = row;
this.value = value;
}
public string Value
{
get { return value; }
set { this.value = value; }
}
}
public class Cells : IEnumerator, IEnumerable
{
private Cell[] cellList;
int position = -1;
public Cells()
{
cellList = new Cell[10]
{
new Cell("A", 1, "A:1"),
new Cell("A", 2, "A:2"),
new Cell("A", 3, "A:3"),
new Cell("A", 4, "A:4"),
new Cell("A", 5, "A:5"),
new Cell("B", 1, "B:1"),
new Cell("B", 2, "B:2"),
new Cell("B", 3, "B:3"),
new Cell("B", 4, "B:4"),
new Cell("B", 5, "B:5"),
};
}
public IEnumerator GetEnumerator()
{
return (IEnumerator)this;
}
public bool MoveNext()
{
position++;
return (position < cellList.Length);
}
public void Reset()
{
position = 0;
}
public object Current
{
get { return cellList[position]; }
}
}
Notice in the cellList array in the Cells class which is looped through in the Main()-method.
I want to loop through all Cell instances in the list which has the column member set to "B". I would like to prefer to write it like this in the Main()-method:
class Program
{
static void Main(string[] args)
{
Cells cells = new Cells();
foreach (Cell cell in cells("B"))
{
Console.WriteLine(cell.Value);
}
}
}
or
class Program
{
static void Main(string[] args)
{
Cells cells = new Cells();
foreach (Cell cell in cells.Column("B"))
{
Console.WriteLine(cell.Value);
}
}
}
Is it possible to modify my test code to this?
I'm not looking for this answer:
class Program
{
static void Main(string[] args)
{
Cells cells = new Cells();
foreach (Cell cell in cells)
{
if (cell.Value.Contains("B"))
{
Console.WriteLine(cell.Value);
}
}
}
}
Thanks!
|
|
|
|
|
Yes, but not quite the way you have it.
You would need to write a "Find(string s)" method (or similar) for your Cells class, which returns a list of each matching cell.
This might defeat the purpose a bit, as it would move the "cell.Value.Contains(s)" into the method, rather than the foreach loop.
I have learnt that you can not make someone love you, all you can do is stalk them and hope they panic and give in.
Apathy Error: Don't bother striking any key.
|
|
|
|
|
I'm fine if I need to write:
cell.Value.Contains(s) or something similar in the Cells class. I know I need to do some changes in the Cells class.
I'm just wonder if I, in the Main()-method, can pass an argument in the foreach-loop condition, just like I stated it.
|
|
|
|
|
Have a look at the AsQueryable() extension method.
See here.
|
|
|
|
|
|
If you want to be able to do
foreach (Cell cell in cells.HavingColumn("B")) {
Console.WriteLine(cell.Value);
}
all you have to do is add a method HavingColumn(string columnName) to the Cell class, which returns a
System.Collections.IEnumerable or a System.Collections.IEnumerable<T=Cell> ; one way of implementing that is by creating a List<Cell> .
FWIW1: this operation will be more expensive than simply adding a test inside your foreach; which is how the method will be implemented anyway (but then it is hidden from the external world).
FWIW2: and that must be how LINQ does it; the easiest and most expensive approach.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|