2012-03-29 4 views
0

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

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(); 
+0

У вас появляется сообщение об ошибке? Или просто ничего не происходит? –

+0

Выглядит хорошо для меня на первый взгляд. Вы уверены, что не являетесь (непреднамеренно), используя транзакцию, которая затем автоматически откатывается? –

+1

Не дублируйте свои вопросы. (http://stackoverflow.com/questions/9932254/cannot-insert-data-into-database) –

ответ

1

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

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

ConfigurationManager.ConnectionStrings["SomeDB"].ConnectionString 

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

2

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

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(); 

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

0

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

0
SqlConnection thisConnection = new SqlConnection(
    ConfigurationManager.ConnectionStrings["NameOfConnectionString"].ConnectionString); 
Смежные вопросы