|
Thanks David for your feedback.
Well it started as a old program I wanted to convert to C# and I decided toturn methods into classes to try and separate the code and give me some practice on using classes.
The program collects information from a script file then compiles and writes the compiled data to file which is loaded into the main program.
While I started to write the program code to create a suitable program I'm now using the code to experiment with and try out things I have learnt.
The code is likely to be re-wriiten.
Brian
|
|
|
|
|
I would strongly urge you to stop trying to write code until you have worked through the two books that I have suggested. Unless and until you fully understand the basics you will be falling over simple issues like this. There are no shortcuts to becoming a developer, it requires time, effort and practice, practice, practice.
|
|
|
|
|
I understand what your saying Richard and like you said it takes practice which is what I'm doing in writing some code.
I see it like trying to drive a car. You can read a lot but you need to get behind the wheel and start driving to get the practice.
I only submitted code because I was asked to do so by someone giving me some feedback.
If I can write a simple example program from something I've learnt from a book and it successfully works then I move on to learn more of the C# programming.
Brian
|
|
|
|
|
You have discovered "references" (very early).
Once you understand them (and public, private and static), you will achieve enlightenment.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Apart from the book 'Dot Net Book Zero' can some one recommend a good book for learning C#.
I find that books with example code are good for learning.
I'm not new to programming but have mainly programmed in the older Visual Basic language and started with BASIC (which became Quick Basic later on).
I'm looking for a book that's easy to follow and does not assume that the reader knows certain things.
Following a program step by step in a book until it is fully written can be helpful as I can see how things fit together.
Any suggestion would be welcome things.
Brian
|
|
|
|
|
|
I'm wondering why you suggested Pro C# 7, correct me if I'm wrong but the title suggests that this book is for experienced C# users.
I've read some "In a Nutshell" books before and they seem to be helpful.
Brian
|
|
|
|
|
Follow the link, and click "look inside" - it'll give you (at least) the contents pages. It starts assuming you aren't familiar with .NET, so it's pretty good for beginners with coding experience in other languages.
IIRC it was one of the ones I started in C# with, from a C / C++ / Assembler background.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
If you come from Visual Basic you have two things to learn :
- .Net
- the Syntax of C#
I suggest you, if you like, to learn at first .Net with VB.Net.
After this you could eaiser come into the C#-Syntax ... (my opinion)
|
|
|
|
|
I'd disagree. If you have VB <= 6 experience you are better off learning C#, as you don't try to use outdated VB6 stuff (some of which still works) instead of the more modern equivalents.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
as I wrote : my opinion ... and also it was my way to come into it ...
|
|
|
|
|
Thanks Griff.
That's one reason for learning C# rather than VB.Net then C#.
VB.Net seems less popular these days going buy the list of the top 10 popular programming languages.
I hope to learn ways of reducing code that C# seems good at doing.
Brian
|
|
|
|
|
You're welcome!
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
That book must be not available as I get a site not found message when I click on your link.
|
|
|
|
|
Just go to your country's Amazon website and search there.
|
|
|
|
|
|
Good to see something freely available that's educational Gerry.
While to covers the basics of C# for beginners I'm hoping to get a more detailed book that covers a lot of things when learning C#.
It will still be useful to read thanks.
Brian
|
|
|
|
|
How should I start to code in making a game using a c# language?
|
|
|
|
|
The same way you get started with any project:
1) Overview design: planning
2) Specification: convert the overview into a requirements document.
3) Design: convert the spec into classes, data, layers, models, and / or patterns.
4) Development: convert the design into code.
5) Testing: Often done at the same time as development, can be designed before dev begins (TDD).
6) Deployment: release to users.
7) Maintenance: Fixing bugs as they come up, adding features.
Any one of those stages can cause you to go back to any previous stage!
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
Greetings experts
First off, I know how to execute a stored procedure using either C# or VB.
However, this one is a bit challenging because it has dynamic pivot query inside the stored proc.
Here is the stored procedure:
TER PROCEDURE [dbo].[uspGetPivotedData]
AS
drop table dbo.MemberHistory;
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX),@colsFormated AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT DISTINCT ',' + QUOTENAME(YEAR(t.EventYear))
FROM Transactions t
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')
set @query = ';WITH CTE AS(SELECT
t.TransactionID,
m.memberName,
m.date_registered,
envelopeNumber,
registrationFee,
t.Balance,
YEAR(eventyear) eventyear,
t.Amount
from dbo.Transactions AS t INNER JOIN dbo.Members AS m ON t .MemberID = m.MemberID INNER JOIN
dbo.PaymentTypes AS p ON t .TypeID = p.PaymentTypeID)
SELECT * INTO #TABLE FROM CTE
SELECT
TransactionID,
memberName,
date_registered,
envelopeNumber,
registrationFee,
Balance, ' + @cols + ' INTO dbo.MemberHistory from #TABLE
pivot
(
MAX(Amount)
for eventyear in (' + @cols + ')
) p ORDER BY TransactionID'
EXECUTE sp_executesql @query
So far, I am using this code to query table called MemberHistory but I would prefer to use the SP instead.
private void Form2_Load(object sender, System.EventArgs e)
{
dataGridView2.DataSource = bindingSource1;
GetData("select * from MemberHistory");
}
private void reloadButton_Click(object sender, System.EventArgs e)
{
GetData(dataAdapter.SelectCommand.CommandText);
}
private void submitButton_Click(object sender, System.EventArgs e)
{
dataAdapter.Update((DataTable)bindingSource1.DataSource);
}
private void GetData(string selectCommand)
{
try
{
String connectionString = ConfigurationManager.ConnectionStrings["Members"].ConnectionString;
dataAdapter = new SqlDataAdapter(selectCommand, connectionString);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
bindingSource1.DataSource = table;
dataGridView2.AutoResizeColumns(
DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
}
catch (SqlException)
{
MessageBox.Show("There is an issue with connection string.");
}
}
Any idea how to replace the embedded sql into the stored procedure shown above?
Sorry for long code.
modified 18-Mar-19 17:41pm.
|
|
|
|
|
The stored procedure loads "MemberHistory"; then your "embedded SQL" selects from MemberHistory (which was loaded by the SP).
One doesn't "replace" the other; one feeds the other. You run the SP; then you run your query.
If you're talking about "combining the two", what's the point?
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
I agree with you but what is different here is that that SP does not run unless you execute it in SSMS using the following:
E [myDB]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[uspGetPivotedData]
SELECT 'Return Value' = @return_value
GO
Unlike regular SP, once you execute it, it automatically adds data to the table in this case MemberHistory but with is SP, as stated, you have to always execute it for data to be stored in MemberHistory.
|
|
|
|
|
The SP is only required to run when the "source data" changed; any other time is pointless.
And there is no such thing as a "regular" SP. The fact that this SP loads a table does not make it "non-regular".
I see no reason why you think this SP can only run in "SSMS". (You already stated you know how).
That "wrapper" to handle a "return value" in SSMS is not required for a call from C# or VB:
sql server - How to get return value from stored procedure in Windows form C# - Stack Overflow
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|