Не удается вставить данные в базу данных SQL Server - PullRequest
0 голосов
/ 30 марта 2012

Я уже прочитал все предыдущие подобные посты, но не смог найти решение. Не могли бы вы взглянуть на мой код? Я не получаю никаких исключений. Я просто не вижу новых данных в базе данных.

int admin = 23;

SqlConnection thisConnection = new SqlConnection(
     ConfigurationManager.ConnectionStrings["myconnectionstring"].ConnectionString);

SqlCommand nonqueryCommand = thisConnection.CreateCommand();

thisConnection.Open();

nonqueryCommand.CommandText = 
    "INSERT INTO Account (Username, Password, AdministratorId) VALUES (@username, @password, @admin)";

nonqueryCommand.Parameters.Add("@username", SqlDbType.VarChar, 20);
nonqueryCommand.Parameters["@username"].Value = UsernameTextbox.Text.ToString();
nonqueryCommand.Parameters.Add("@password", SqlDbType.VarChar, 15);
nonqueryCommand.Parameters["@password"].Value = PasswordTextbox.Text.ToString();
nonqueryCommand.Parameters.Add("@admin", SqlDbType.Int);
nonqueryCommand.Parameters["@admin"].Value = admin;

nonquerycommand.ExecuteNonQuery();

thisConnection.Close();

Ответы [ 4 ]

2 голосов
/ 30 марта 2012

Вы индексируете коллекцию строк подключения с помощью строки подключения?

int admin = 23;

  SqlConnection thisConnection = new SqlConnection(
"Data Source=...;Persist Security Info=True;User ID=myusername;Password=mypassword");
 SqlCommand nonqueryCommand = thisConnection.CreateCommand();
thisConnection.Open();
 nonqueryCommand.CommandText = "INSERT INTO Account (Username,Password,AdministratorId) VALUES (@username,@password,@admin)";

nonqueryCommand.Parameters.Add("@username", SqlDbType.VarChar, 20);
nonqueryCommand.Parameters["@username"].Value = UsernameTextbox.Text.ToString();
nonqueryCommand.Parameters.Add("@password", SqlDbType.VarChar, 15);
nonqueryCommand.Parameters["@password"].Value = PasswordTextbox.Text.ToString();
nonqueryCommand.Parameters.Add("@admin", SqlDbType.Int);
nonqueryCommand.Parameters["@admin"].Value = admin;

 nonquerycommand.ExecuteNonQuery();


 thisConnection.Close();

Вам необходимо исправить строку подключения.

1 голос
/ 30 марта 2012

Я не уверен, является ли это ошибкой или нет, но индексатор ConnectionStrings в ConfigurationManager ищет имя строки подключения:

<connectionStrings>
    <add name="SomeDB" connectionString="..." />
</connectionStrings>

ConfigurationManager.ConnectionStrings["SomeDB"].ConnectionString

Полагаю, это вызвало бы ошибку в вашем коде, хотя, возможно, исключение с нулевой ссылкой, но я не помню, как работает этот класс.

0 голосов
/ 30 марта 2012
SqlConnection thisConnection = new SqlConnection(
    ConfigurationManager.ConnectionStrings["NameOfConnectionString"].ConnectionString); 
0 голосов
/ 30 марта 2012

Я думаю, что вы неправильно вытягиваете строку подключения.В ConfigurationManager.Connectionstrings указывается имя строки подключения в файле app / web.config.Попробуйте использовать имя в файле .config или просто жестко закодировать строку подключения в конструкторе объектов SqlConnection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...