|
No, use all four.
new, open, close, open, close, ..., dispose.
|
|
|
|
|
i see what ur saying. there's a clear diff b/t the (conn) object and what you do with it (opening/closing). don't destroy it if ur going to keep using it, etc. (for conn obj).
tnx for the 'using' tips et al.
thanks all
|
|
|
|
|
For a moment, let's assume that we are talking about a SqlConnection here. When you call Dispose on the connection, all it does is call Close and then calls Dispose on the object it derives from (which just fires off the EventDisposed event to any listeners, and removes the instance from any Site Container instance. So, what does all this have to do with the price of fromage?
Well, the only part that is of any real interest there is the Close , so given that this is all that the Dispose is really doing, you are fine keeping the connection available for use, and just use Close on it until you really are ready to get rid of it.
|
|
|
|
|
PIEBALDconsult wrote: So you can hold onto a Connection for a long time and only open it when you need it.
True but in normal practice that shouldn't happen.
First the significance in the object is the connection. If there is no connection then the object itself is light weight so creation itself isn't doing anything (again for most situations.)
Second if you keep it around you must explicitly manage the state. So to reuse it you would need to either explicitly check the state or implicitly assume the state is correct. The first case requires additional code and the second leads to complexity as the maintenance engineer would need to insure correct state. Both of those cases are more easily solved by using creation.
|
|
|
|
|
jschell wrote: If there is no connection then the object itself is light weight
I wouldn't assume that; this is .net.
jschell wrote: you must explicitly manage the state
I have no problem with that. I've written Windows Services that hold a single Connection for months and never had any trouble using Open and Close as needed, perhaps millions of times.
|
|
|
|
|
PIEBALDconsult wrote: I have no problem with that. I've written Windows Services that hold a single Connection for months and never had any trouble using Open and Close as needed, perhaps millions of times.
I didn't say it couldn't be done. And usage of course would have nothing to do with whether it was correctly implemented in all cases except of course that if there is an incorrect usage then it is more likely to show up with high volume.
|
|
|
|
|
jschell wrote: more likely to show up with high volume.
Indeed.
|
|
|
|
|
Hi All,
I develop a windows application using c# that use sql server databases, i want to create a setup for this application to install application and install sql server as prerequisites, but i want to set a specific configuration for this sql server such as instancename, sa password and mix mode.
please help me if you know how to do that.
Thanks all,
|
|
|
|
|
Installing SQL Server is not trivial and you would need to deal with licensing issues as well. There are other issues as well such as whether SQL Server is already installed and whether the user has SQL Server but has it on another box.
The license problem by itself would concern me. But just automating the SQL Server install is going to require a lot of work.
But I would suppose that to do automation that you would need to look into custom actions in the installer.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa368066%28v=vs.85%29.aspx[^]
|
|
|
|
|
Hi,
I agree with jschell and Paul Conrad, but it is easy to but sql express as a prerequisites in c# deployment problem, but i want it to installed with my configuration not the default settings,
is it possible to do that?.
Thanks alot
|
|
|
|
|
zead wrote: is it possible to do that?.
Yes. But I doubt it is easy.
As I suggested custom actions with the MS install would be required.
Or buy an installer and learn out to use that.
|
|
|
|
|
Why not just have an installment of SQL Server be a requirement to install your application? Have you looked into SQL Server Compact Edition?
As jschell said, you may run into licensing issues if you have your set up install SQL Server when setting up your application.
"Any sort of work in VB6 is bound to provide several WTF moments." - Christian Graus
|
|
|
|
|
It is possible to create a VBScript which installs SQL Server and sets some values like instance name. I do not know if the sa password can be set also. The call is something like
SQLEXPR_x86_DEU.exe /QS /Action=Install /IAcceptSQLServerLicenseTerms=true /Features=SQL,Tools /InstanceName="MyInstance"
It could be necessary to install a new version of Windows Installer before that.
After installation of SQL server, the database can be restored/attached by a call to osql with many parameters.
I don't know all the details, but with this information you can start and try.
|
|
|
|
|
Hi,
I did that using procss.start and i pass the arguments, this is the code:
Process myProcess = new Process();
string sqlExpressSetupFileLocation=@"C:\Users\Administrator\Desktop\SID.Installer.BootStrap\bin\Debug\SQLEXPR_x64_ENU.exe"
myProcess.StartInfo.FileName = sqlExpressSetupFileLocation;
string startupPath = sqlExpressSetupFileLocation.Substring(0, sqlExpressSetupFileLocation.LastIndexOf("\\"));
myProcess.StartInfo.Arguments = " [SQLSERVER2008] /INSTANCEID=\"" + instanceName + "\" /ACTION=Install " +
" //IAcceptSQLServerLicenseTerms=true /FEATURES=SQLENGINE,REPLICATION " +
" /INDICATEPROGRESS=True /QUIET=False /QUIETSIMPLE=True " +
" /INSTALLSHAREDWOWDIR=C:\\Program Files (x86)\\Microsoft SQL Server " +
" /INSTANCEDIR=C:\\Program Files\\Microsoft SQL Server\\ " +
" /INSTANCENAME=" + instanceName + " " +
" /MEDIASOURCE=" + startupPath + "\\" + " " + " /SAPWD=" + saPassword + " ";
myProcess.StartInfo.UseShellExecute = false;
myProcess.Start();
myProcess.WaitForExit();
the installation run but at the end not completed successfully
and i can't know what is the reason
thanks all;
|
|
|
|
|
you can use Install shield Software
|
|
|
|
|
open windowform in a specified area of other windowform
|
|
|
|
|
And what, exactly, is your question? When you post it, don't forget to tell us what you have done and what code you have put in place?
|
|
|
|
|
You can do it - just put it inside a panel:
frmInputBox fib = new frmInputBox();
fib.TopLevel = false;
fib.Visible = true;
panContainer.Controls.Add(fib);
fib.Dock = DockStyle.Fill;
But I strongly advise against it - it never looks particularly good.
Instead, put the controls you want on the form into a UserControl, and display that on the Form and the Panel instead.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
I believe that it is always a serious mistake to show a Form inside another Form ! Only in the long outmoded, so called, "MDI interface" mode did you have Child Forms within a 'master' Parent Form: that is no longer considered a useful interface model.
I second OriginalGriff's suggestion to either use a Panel, or a UserControl, to display whatever inside a Form.
The really good thing about building UserControls, is their potential for re-use in other projects, or use of multiple instances of them in one project.
best, Bill
"Everything we call real is made of things that cannot be regarded as real." Niels Bohr
|
|
|
|
|
There is a way: Using MDI Forms.
Regards
Christian Amado
MCITP | MCTS | MOS | MTA
Olimpia ☆ ★★★
Please mark as answer, if it helps.
|
|
|
|
|
you can use below Code
[DllImport("user32.dll")]
static extern int SetParent( int hWndChild, int hWndNewParent);
[DllImport("user32.dll", EntryPoint="SetWindowPos")]
static extern bool SetWindowPos(
int hWnd,
int hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
uint uFlags
);
[DllImport("user32.dll", EntryPoint="MoveWindow")]
static extern bool MoveWindow(
int hWnd,
int X,
int Y,
int nWidth,
int nHeight,
bool bRepaint
);
SetParent( wordWnd, this.Handle.ToInt32());
SetWindowPos(wordWnd,this.Handle.ToInt32(),0,0,this.Bounds.Width+20,this.Bounds.Height+20, SWP_NOZORDER | SWP_NOMOVE | SWP_DRAWFRAME);
MoveWindow(wordWnd,-5,-33,this.Bounds.Width+10,this.Bounds.Height+57,true);
this.Parent.Focus();
|
|
|
|
|
In a linq to sql data context object that points to a sql server 2008 r2 database in a C# 2010 application, I want to change the size of a column from varchar(500) to varchar(900). To acoomplish this task, can you tell me what I need to do so the data context object picks up the expanded size?
|
|
|
|
|
The datacontext schema is created when you drag and drop the database items from the explorer.
Since this is just a column size change, you can change this manually in the code generated.
The other option is to manually delete all the table mappings and then re-create them - this would be a slightly more cumbersome task.
|
|
|
|
|
Create another field with the HASH of that varchar(500), and put a UNIQUE CONSTRAINT on the hash field: HASH BYTES('md5', My Long VarcharField)
This will cause poor performance but if you have a varchar(500) where you need to enforce uniqueness I'm assuming performance isn't on the forefront of your considerations anyways.
http://www.dapfor.com/en/net-suite/net-grid/tutorial/data-binding
|
|
|
|
|
AnnieCalvert wrote: Create another field with the HASH...
What does that have to do with the question?
|
|
|
|