|
Guys,
I am using C# with MSS 2005. I need to generate a sequential number for a field (ItemNo) in the format ddmmyyyy000000x where x is a sequencial number eg (020520100000001,020520100000002, 020520100000003 ...) for records generated on May 2, 2010.
Can any one help in this regard.
|
|
|
|
|
So do it - what is the problem?
You should never use standby on an elephant. It always crashes when you lift the ears. - Mark Wallace
C/C++ (I dont see a huge difference between them, and the 'benefits' of C++ are questionable, who needs inheritance when you have copy and paste) - fat_boy
|
|
|
|
|
I have something similar in VB6 with MDB but have difficulty using C# and MSS. See my VB6 code below and advice on how to produce something similar in C#.
Public Sub GenerateCode(ByRef Coder As String)
Dim strMar As String, intApr As Integer
Dim strJul As String
Coder = UCase(Coder)
Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
On Error GoTo AddNewErr
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Manager.mdb"
rs.Open "select ItemNo from Items where left(ItemNo,8) like '" + Coder + "' order by ItemNo asc", cn, adOpenKeyset, adLockOptimistic
If rs.RecordCount <> 0 Then
rs.MoveLast
If Left(Trim(rs.Fields!ItemNo), 8) = Coder Then
strMar = Right(Trim(rs.Fields!ItemNo), 6)
strMar = Val(strMar) + 1
strMar = CStr(strMar)
If (6 - Len(strMar)) <> 0 Then
strMar = String$(6 - Len(strMar), "00000") & strMar
End If
Else
strMar = "000001"
End If
Else
strMar = "000001"
End If
Coder = Coder & strMar
Editor = Coder
Set rs = Nothing
Set cn = Nothing
Exit Sub
AddNewErr:
MsgBox Err.Description, vbExclamation, "Error Report"
End Sub
|
|
|
|
|
So, what you are doing is:
1) Read the last record (presumably for this month) from your database.
2) If it doesn't exist, use a default of 1.
3) If it does, strip out the last 6 characters, convert to int, add one to it and use that.
4) Reattach that to the code for this month.
Ignoring that you seem to have a fetish over naming your variables after months of the year, and the "str" prefix is a bit of a waste of time, since half way through you hold integers in them.
What is the bit that is giving you problems? Apart from the whole approach, which is frankly rubbish?
If you must have an item number that is a string, with a date and a sequence number, then:
1) Read the last record.
2) Assume none: set integer default to 0 in variable called nextSequenceNumber
3) If record exists, extract last 6 characters, and parse to int. Store in nextSequenceNumber.
4) Return date code + (nextSequenceNumber + 1).ToString("000000")
Assume the database will contain corrupt data - use TryParse rather than parse, and log any failures. Try to deal with them nicely.
You should never use standby on an elephant. It always crashes when you lift the ears. - Mark Wallace
C/C++ (I dont see a huge difference between them, and the 'benefits' of C++ are questionable, who needs inheritance when you have copy and paste) - fat_boy
|
|
|
|
|
There is a lack of PRE tags, semi-colons and curly braces. These codez don't belong here.
|
|
|
|
|
PRE tags, semi-colons and curly braces are the least of the problems! Even by VB standards, that is some clumsy code...
You should never use standby on an elephant. It always crashes when you lift the ears. - Mark Wallace
C/C++ (I dont see a huge difference between them, and the 'benefits' of C++ are questionable, who needs inheritance when you have copy and paste) - fat_boy
|
|
|
|
|
You just need to concatenate all strings, "your datetime string" + "000000" + your value of x.
Are you facing any problem in this?
|
|
|
|
|
Ya what is the issue?
Where you stuck ??
Jinal Desai - LIVE
Experience is mother of sage....
|
|
|
|
|
Following code will help you to achieve what you want in C#.
string temp="0000000";
int i=10;
string finalstring=DateTime.Today.ToString("ddMMyyyy") + temp.Substring(0, temp.Length - i.ToString().Length) + i.ToString();
Hope this will help!
Jinal Desai - LIVE
Experience is mother of sage....
|
|
|
|
|
So create a static int variable (I would do this in a global static class), and increment it from anywhere in the code.
public static Globals
{
public static int counter = 0;
}
Then, when you create your string, do it this way:
Globals.counter++;
string id = string.Format("{0}{1:0000000}", myDate.ToString("ddMMyy"), Globals.counter);
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Hello Everybody,
I have generate an error while building on Dll
Cannot register assembly "MYDLL.dll" - access denied. Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
Thanks
If you can think then I Can.
|
|
|
|
|
Can you register it with regsrv32? You need administrative privileges for registering a dll, because it writes some data to HKEY_CLASSES_ROOT in the registry.
|
|
|
|
|
How can i register it. Because Error is generate while i am Compiling my dll.
If you can think then I Can.
|
|
|
|
|
Is this a .NET DLL ?
This Simply means you don't have permissions to create Files in that local drive.
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|
|
But I am Running Visual Studio in Administrative mode. and if i am block some code then it will working fine.
If you can think then I Can.
|
|
|
|
|
|
Hi!
How can I take data from a dataset and populate a List<>()?
Illegal Operation
|
|
|
|
|
A List of what type?
You could use Add to add an instance of type T to a List<T>
You could use Add to add a DataSet to a List<DateSet>
So what is it you want?
|
|
|
|
|
I need to create a list of type Dataset. Here is my code at the moment
List<<DataSet>> dsList = new List<<DataSet>>();
dsList.Add(payClass.GetPayItems());
How would I bind that list to a ListBox?
P.S - I added to << and >> because when posting it removes it.
Illegal Operation
|
|
|
|
|
A ListBox can hold and show all kinds of items; by default, it calls ToString() on each of its items to visualize them.
There is an alternative by turning the ListBox into "OwnerDrawn" mode, which means you set out to provide all the code required to paint one item, see the DrawItem event.
If you were to bind a List<DataSet> to a ListBox, it would turn each DataSet into a single item in its collection; unless your DataSet has overridden its ToString() method, the net result would be something similar to the string "System.Data.DataSet" which I guess is not what you want. And painting a DataSet yourself would be a challenge.
So I think you are tackling this the wrong way. I'm not so sure what it is you really want to achieve.
PS: you can get proper < > & signs by using the little widgets above the editor box.
|
|
|
|
|
Luc,
I have dataset that contains Items from my database. What I want to do is list all those payitems in listbox1 and then enable to user to add selecteditems to listbox2.
Illegal Operation
|
|
|
|
|
Well, AFAIK a DataSet can only contain DataTables; so maybe you have one or several DataTables that hold DataRows with such payitem information. The easy way of presenting one DataTable to a user is by using a DataGridView (assuming you are talking about a WinForms application).
While I'm not an expert on DataTables and the like, I recently published my CP Vanity[^] article that uses both DataTable and DataGridView. I would suggest you read the MSDN documentation on the relevant classes, and have a look at my app. Assuming it looks like what you have in mind.
|
|
|
|
|
string result = "";
append("Ali","Salim",&result);
public void append(string a, string b, string result)
{
result = a +" "+ b;
}
Error:
Error 11 Argument '4': cannot convert from 'string*' to 'string' D:\app\pup\Code\TBrectangular.aspx.cs 23 262 D:\app\
|
|
|
|
|
It's telling you that result and &result are not the same thing. However, your public void append(string a, string b, string result) wouldn't do much anyway, since you can't modify function parameters without explicitly specifying.
CQ de W5ALT
Walt Fair, Jr., P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
this is the C# forum, your code does not compile here.
|
|
|
|