C# Execute Query

I am writing the code below to change passwords on instances of SQL Server. My first attempt, I tried to connect to the default instance by passing the computer name into the connection string:

SqlConnection conn = new SqlConnection("Data Source=" + computerName + ";Initial Catalog=master;User Id=sa;Password=;");.

However, I had an error during compile. Now I am trying by specifying localhost, but getting an "InvalidOperationException". Can someone look at my code and see what I am doing wrong?

-- PS The sa password is blank and the user names exist on the server.
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using Microsoft.Win32;
 
namespace RegistryTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] userNames = new string[] { "John", "Michael" };
 
            string computerName = System.Environment.MachineName;
            string password = "password";
 
            //SqlConnection conn = new SqlConnection("Data Source=" + computerName + ";Initial Catalog=master;User Id=sa;Password=;");
            SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=master;User Id=sa;Password=;");
 
            foreach (string userName in userNames)
            {
                SqlCommand cmd = new SqlCommand("ALTER LOGIN [" + userName + "] WITH PASSWORD=N'" + password + "', conn");
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
            }
 
            Console.WriteLine("FIN");
        }
    }
}

Open in new window

LVL 3
computerstreberAsked:
Who is Participating?
 
Guy Hengel [angelIII / a3]Connect With a Mentor Billing EngineerCommented:
this line is wrong:

                SqlCommand cmd = new SqlCommand("ALTER LOGIN [" + userName + "] WITH PASSWORD=N'" + password + "', conn");
                conn.Open();


must be:

                SqlCommand cmd = new SqlCommand("ALTER LOGIN [" + userName + "] WITH PASSWORD=N'" + password + "' ", conn);
                conn.Open();
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
explanation: in your code, the ",conn" was part of the connection string, instead of specifying the second parameter for the new SqlCommand,..
0
 
computerstreberAuthor Commented:
Awesome... that worked beautifully....
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.