Is this possible using a using statement C# SQL?
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
What if there’s a error while opening the connection?
The using statement is try and finally
No catch
So if I catch outside the using brackets will the catch catch the connection opening error?
If not, how to implement this with using the using
statement a shown above?
Add a unique index to the database for the fields and catch the error.
Don't reinstantiate the SQL Connection for each row. Opening and closing a connection is resource intensive. Try something like this:
If you want to catch any error then you'll need to wrap everything in
try
-catch
block.using
blocks simply ensure that non-managed resources are disposed, they cannot handle exceptions.Also,
SqlCommand
implementsIDisposable
, so I'd suggest putting that in ausing
block as well.Just write it out explicitely:
Yes, you can put the
using
block in atry
block, and the followingcatch
will catch any errors related to thetry
block.It's possible to do so in C# (I also see that code is exactly shown in MSDN http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx). However, if you need to be defensive and for example log potential exceptions which would help troubleshooting in a production environment, you can take this approach: